免费好用的SSL域名签名,Let’s Encrypt使用攻略
Let’s Encrypt是由 ISRG(Internet Security Research Group,互联网安全研究小组)发起,由Mozilla、Cisco、Akamai、Electronic Frontier Foundation 和 Chrome 等众多公司和机构支持的免费、自动化、开放的证书签发服务。
Let’s Encrypt 与 IdenTrust 的 DST Root CA 做了交叉认证,兼容性还是非常不错的,目前能做到主流系统包括XP系统也能得到很好的支撑,同时安全性上面Let’s Encrypt支持ECC 证书(目测采用的是ECDHE 密钥交换、RSA 签名方式)
Let’s Encrypt目前完全免费,支持3个月证书有效期,到期可自动续签,关于有效期这个应该是一个就安全性考量的策略,好在自动化做的非常不错,再加上各种自动化的申请、过期续签方案,已经做到很方便了。
Let’s Encrypt 的证书签发过程使用的是 ACME (Automated Certificate Management Environment)协议,目前官方和第三方工具都是基于此协议,官方推荐工具列表在这里
这里推荐 acme.sh 实测系统兼容性非常好,对其他库的依赖和版本依赖相对较小,CentOS 5.8系统 python 2.4.3 完美实现,这里简单讲一下acme.sh的安装和使用吧,官方有中文教程 在这里
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh –install
支持参数列表如下,通常使用 accountemail就可以了
–home ~/myacme
–certhome ~/mycerts \
–accountemail “hi@acme.sh”
–accountkey ~/myaccount.key
–accountconf ~/myaccount.conf
–useragent “this is my client.”
DNS验证方式生成签名
证书生成支持域名TXT解析和文件自动生成验证,对于不方便公网WEB自动生成文件访问的情况使用TXT域名解析还是非常方便的,执行下面的命令获取TXT解析参数
acme.sh –issue –dns -d mydomain.com
按命令执行结果做TXT解析即可,解析生效后执行下面的命令生成证书
acme.sh –renew -d mydomain.com
HTTP自动生成验证文件生成签名
这种方式要求指定公网可访问的webroot目录,工具会自动生成验证文件访问成功后完成验证并自动删除文件
acme.sh –issue -d mydomain.com -d mydomain2.com –webroot /home/www/webroot
注意以上命令都支持指定多域名(每个域名对应一个 -d 参数)
证书生成后,自动在系统的crontab每天晚上12点自动执行更新命令,如果证书过期自动续期