找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

456

积分

0

好友

66

主题
发表于 6 小时前 | 查看: 2| 回复: 0

向服务商购买一张常见的 DV 通配符 SSL 证书,通常每年的费用在数百到一千多元人民币不等。如果你的域名众多,每年累积的证书费用可能高达数千元。在降本增效的背景下,对于小公司和个人网站而言,如果免费证书能够满足需求,那么选择免费方案无疑能有效节省成本。

Let's Encrypt 是一家免费、开放且自动化的公益性证书颁发机构,由互联网安全研究组运营。它的使命是推动 HTTPS 的广泛应用,通过提供便捷的免费证书服务,致力于构建一个更安全、更尊重隐私的互联网。

操作方法

根据不同的使用环境,Let‘s Encrypt 提供了多种验证和获取证书的方式。官方推荐的常用工具是 Certbot。在一些支持自动化部署的服务器环境或云平台中,你可以配置工具定期自动完成证书的申请和续期,从而大幅减少维护工作量。由于本文所述的服务器环境较为老旧,并且需要将证书上传至阿里云并手动部署到多个服务上,因此采用了“本地生成证书 → 手动上传与更新”的方式。

0x01 在本地生成证书

本文将使用 Docker 容器来运行 Certbot 工具,这是一种快速、隔离的部署方式,非常适合云原生环境或本地测试。生成通配符证书的典型命令如下:

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:指定生成 RSA 密钥,而非默认的 ECC 密钥,因为部分阿里云服务对 ECC 证书的兼容性支持不足。

执行命令后,程序会依次询问邮箱地址、协议同意项以及域名信息。确认后,它会提示你向域名 DNS 解析中添加一条特定的 TXT 记录来完成验证。根据提示完成操作,等待验证通过即可。

证书成功生成后,文件会保存在你通过 -v 参数挂载的本地目录中,例如 /Users/mazhuang/some/path/letsencrypt/archive/yourdomain.com/

0x02 上传和部署证书

将上一步生成的证书文件(如 fullchain1.pemprivkey1.pem)上传到阿里云的“数字证书管理服务”。上传后,你可以选择使用其一键部署功能(此功能可能需付费),也可以在具体的云产品(如SLB、CDN)的配置中,手动选择已上传的证书进行部署(免费)。

0x03 定期更新证书

Let‘s Encrypt 颁发的证书有效期为 90 天,建议在到期前 30 天内进行更新。更新流程就是重复 步骤 0x01:运行命令生成新证书,然后执行 步骤 0x02 将新证书上传并重新部署到相关服务。为了降低运维负担,强烈建议在条件允许时配置自动化续期脚本。

注意事项

部分极其老旧的系统或平台可能不信任 Let‘s Encrypt 的根证书。在决定使用前,建议评估目标环境的兼容性。

例如,在部署后,一个运行在旧版本 JDK 8(u141 之前)上的 Java 应用(如xxl-job执行器)可能会出现 sun.security.validator.ValidatorException: PKIX path building failed 的错误,导致无法注册或建立SSL连接。

解决方法如下(以Java环境为例):

  1. 下载根证书:从 Let‘s Encrypt 官网下载其根证书 isrgrootx1.pem
  2. 导入信任库:使用 keytool 命令将其导入到 JDK 默认的信任库 cacerts 中。
    keytool -trustcacerts -keystore "/opt/jdk/jre/lib/security/cacerts" -storepass changeit -noprompt -importcert -alias lets-encrypt-x1 -file "/opt/isrgrootx1.pem"
  3. 重启服务:重启你的Java应用服务,使更改生效。

小结

以上步骤清晰简单,且成本为零。对于预算有限的小公司和个人开发者来说,使用 Let‘s Encrypt 获取免费的通配符 SSL 证书,是节省开支的可行方案。如果环境支持,强烈建议实现自动化续期流程,从而将维护成本降至最低。




上一篇:小程序渗透测试实战:动态SM2/SM4密钥破解与BurpSuite自动化加解密
下一篇:Next.js RCE漏洞CVE-2025-55182实战:从复现到内存马植入的完整指南
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区(YunPan.Plus) ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-6 23:56 , Processed in 0.115190 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 CloudStack.

快速回复 返回顶部 返回列表