借助 Let's Encrypt 节省 SSL 证书费用

向服务商购买一张常见的 DV 通配符 SSL 证书,通常每年价格在数百至一千多元人民币不等;若名下有多个域名需要使用证书,总费用每年可能达到数千元。

在当前强调降本增效的环境下,若评估后认为免费证书能够满足需求,小公司和个人网站即可节省相应成本。

Let's Encrypt 简介

Let's Encrypt 是一家免费、开放、自动化的公益性证书颁发机构(CA),由互联网安全研究组(ISRG)运作,属于非营利组织。其目标是推广 HTTPS 的应用,为构建更安全、尊重隐私的互联网提供免费而便捷的支持。

操作方法

根据不同使用环境,Let's Encrypt 提供多种验证与获取证书的方式。常用工具是 Certbot,详见文档:eff-certbot.readthedocs.io/en/stable/

在部分环境中,可配置工具定期自动续期,减少维护工作。

由于服务器环境较为老旧,且需要将证书上传至阿里云并部署到多个云服务,本文暂采用"本地生成证书---手动上传与更新"的方式。

0x01 在本地生成证书

本文使用 Docker 运行 Certbot,参见文档:eff-certbot.readthedocs.io/en/stable/i...

生成通配符证书的示例命令如下:

bash 复制代码
docker run -it --rm --name certbot \
  -v '/Users/mazhuang/some/path/letsencrypt:/etc/letsencrypt' \
  certbot/certbot certonly \
  --preferred-challenges dns \
  --manual \
  --server https://acme-v02.api.letsencrypt.org/directory \
  --key-type rsa --rsa-key-size 2048
  • --preferred-challenges dns:使用 DNS 方式进行域名验证;
  • --manual:以交互式方式进行询问与操作;
  • --key-type rsa --rsa-key-size 2048:生成 2048 位 RSA 私钥(部分阿里云服务不支持默认的 ECC 证书)。

执行后会依次询问邮箱、协议授权、域名等信息,随后提示添加 DNS TXT 记录以完成域名所有权验证,按提示操作即可。

生成成功后,证书与私钥保存在挂载的本地目录中,例如上述命令中的 /Users/mazhuang/some/path/letsencrypt/archive/{domain name}。各文件的说明可参考:eff-certbot.readthedocs.io/en/stable/u...

0x02 上传和部署证书

将证书上传到阿里云的数字证书管理服务。可使用其一键部署功能(付费),或在各云服务中手动选择使用该证书(免费),按需取用。

0x03 定期更新证书

Let's Encrypt 颁发的证书有效期为 90 天,建议在到期前 30 天内更新。可重复步骤 0x01 生成新证书,然后上传并部署。

注意事项

部分极为老旧的平台有可能不支持 Let's Encrypt 颁发的证书,建议评估后再决定是否使用,具体的兼容情况可以参考:letsencrypt.org/zh-cn/docs/...

比如我这边就遇到了因为使用的是 JDK 8 的低于 141 的版本,部署完证书后,发现 xxl-job 定时任务执行器没有注册上,报错 sun.security.validator.ValidatorException: PKIX path building failed

解决方法:

  1. 下载 ISRG Root X1 证书

    在这里可以找到: letsencrypt.org/certificate...

    sh 复制代码
    cd /opt
    get https://letsencrypt.org/certs/isrgrootx1.pem
  2. 导入证书到 JDK 的 cacerts 中

    sh 复制代码
    keytool -trustcacerts -keystore "/opt/jdk/jre/lib/security/cacerts" -storepass changeit -noprompt -importcert -alias lets-encrypt-x1 -file "/opt/isrgrootx1.pem"
  3. 重启服务

小结

以上步骤简单、成本为零。对小公司和个人网站而言,是节省 SSL 证书费用的可行方案。

若环境允许,建议配置自动化续期,进一步降低维护成本,按需采用。

参考链接

相关推荐
考虑考虑15 小时前
Excel导入时产生特殊字符处理
java·后端·java ee
IT_陈寒15 小时前
Redis的DEL命令竟然没删掉数据?我踩的这个坑你得知道
前端·人工智能·后端
用户9385156350715 小时前
Docker + Nginx + Node.js:从“我的电脑能跑,你的电脑跑不了”到一键部署
后端·nginx·docker
陆枫Larry15 小时前
两步验证(2FA )到底是什么?
后端
JavaGuide15 小时前
我用 Claude Code/ZCode+GLM-5.3 从零做了一款 Agent 游戏!
前端·后端
程序员清风16 小时前
专业再升级!程序员专属显示器明基RD280UG上手实测!
java·后端·面试
刘立军16 小时前
RESTful 与契约优先:规范接口定义,统一接口设计范式
后端·架构·ai编程
JavaGuide17 小时前
GitHub 4.5 万+ Star!GitNexus 把代码仓库变成了 Claude Code / Codex 能查询的知识图谱
后端·ai编程
子兮曰17 小时前
DeepSeek Harness 架构深潜:一个把 Agent 运行时做成纯插件树的开源 Harness
前端·后端·deepseek
子兮曰18 小时前
AI Agent 完整入门指南:从 LLM 到生产落地的 30+ 个核心概念
前端·后端·agent