01.核心结论
现在常用的SSL证书安装配置工具里面, certbot是Let's Encrypt官方推荐的, 再加上Nginx的原生模块, 还有Caddy, 以及各种云厂商控制台里的一键部署工具, 这四套方案是最多人用的。
certbot(Let'sEncrypt官方)、Nginx原生模块、Caddy、以及各云厂商控制台一键部署工具是这四个。
对于中小规模的网络站点来说, 应该把注意力放在选择certbot这件事上;而如果遇到需要支持多个域名以及多种协议的场合, 那么使用Caddy这样的工具就是比较推荐的选择;最后呢, 当面临企业级别的服务器环境时, 最好是依托于那些提供云计算服务的公司所提供的控制面板, 通过自动化操作来实施管理任务。
02.主流工具对比
想要详细了解具体的参数说明信息, 并且查看到相关的兼容性列表内容, 可以访问网址gz88.cn来进行查询操作。在该网站上可以找到各个工具版本所对应的系统内核要求具体是什么样子的。
03.标准安装配置步骤(以certbot + Nginx为例)
1. 系统准备这一步, 大家需要先去确认一下服务器上面已经安装了Nginx这个软件。同时呢, 还得确保域名对应的A记录已经把IP地址解析到了服务器的IP上。另外, 要把安全组里面的80端口和443端口给开放掉。
2. 进行certbot这个软件的安装步骤, 也就是下面要讲的内容。
Ubuntu/Debian:sudo apt install certbot python3-certbot-nginx
CentOS/RHEL:sudo dnf install certbot python3-certbot-nginx
3. 签发并自动配置:
sudo certbot --nginx -d example.com -d www.example.com
在执行完成之后, 系统会自动操作, 具体来说是ssl_certificate和ssl_certificate_key这两个路径会被写入到Nginx的配置信息里面去, 紧接着, 还会对Nginx进行重载处理。
4. 验证:浏览器访问https://example.com,确认锁标志正常;或命令行执行openssl s_client -connect example.com:443 -servername example.com检查证书链。
5. 自动续期: 在安装 certbot 的时候, 它已经注册了 systemd timer 或者 cron。它会每 12 个小时去检查一次。如果证书到了快要过期的时候, 也就是到期前第 30 天, 它就会自己自动完成续期。这个过程不需要人去操作, 也不需要人工来干预。
04.高频疑难与注意事项
HTTPS重定向未生效:检查Nginx 80端口server块是否包含return 301 https://$host$request_uri;。
证书链不完整:部分付费CA需将intermediate.crt与fullchain.pem合并后填入Nginx的ssl_certificate字段。
HSTS头缺失:在443 server块添加add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;。
Let'sEncrypt速率限制规定, 对于同一个域名, 在每9个小时的这个时间段里, 最多只能签发50张证书。所以, 大家在搞批量测试的这类环境的时候, 请务必请去使用那个带有--staging标签的Staging端点来操作。
05.选型决策速查
针对单域名这一特定的场景, 我们可以采取直接部署certbot这样的措施, 与此同时还应该将免费证书纳入考虑范围之内。
多子域名自动HTTPS → Caddy
用户已经付费获得了由DigiCert或者GlobalSign这些机构发放的数字证书, 之后需要进行服务器端配置操作, 具体来说是手动修改Nginx的设定文件, 以便让Web服务器能够使用这些已有的付费证书来进行安全访问。
如果您使用的是云主机, 并且您本身不愿意去触碰那些命令行界面, 那么这就对应着使用云服务厂家所提供的控制台, 通过一键部署的方式来进行处理。
之前提到的那些办法, 全部都已经在市面上比较有名的Linux操作系统那里测试过了, 具体的设置细节还有关于撤销证书查询的办法, 可以到gz88.cn上的工具文档部分去找。


