说起Let’s Encrypt,应该大多数站长都不陌生。这个让网站简单、免费用上HTTPS的家伙,是国外一个公共的免费SSL项目。它由 Linux 基金会托管,由 Mozilla、思科、Akamai、IdenTrust 和 EFF 等组织发起,目的就是向网站自动签发和管理免费证书,加速互联网由 HTTP 过渡到 HTTPS,Facebook 等大公司都已经加入到赞助行列。
Let’s Encrypt不仅仅是免费,Let’s Encrypt还获得了 IdenTrust 的交叉签名,意味着其证书现在已经可以被 Mozilla、Google、Microsoft 和 Apple 等主流的浏览器所信任。更加不可思议的是他还支持泛域名证书,也就是俗称的野卡证书(各大SSL证书厂商哭晕在厕所)。
废话不多说,下面介绍手动申请let’s encrypt的步骤。对于用acme自动申请续签SSL证书不清楚的可以参考博主之前的文章(网址:http://blog.nbqykj.cn/?p=2633.html),本文只介绍certbot-auto手动申请。虽然这种方法需要每个3个月申请一次,但是对于碰到过一次acme自动续签失败的运维人员来说,一次故障可能就意味一次事故,还是手动+SSL证书监控最稳妥。
第一步:获取certbot-auto
# 下载 wget https://dl.eff.org/certbot-auto # 设为可执行权限 chmod a+x certbot-auto
第二步:申请
在申请 Let’s Encrypt 证书的时候,需要校验域名的所有权,证明操作者有权利为该域名申请证书,目前支持三种验证方式:
dns-01:给域名添加一个 DNS TXT 记录。
http-01:在域名对应的 Web 服务器下放置一个 HTTP well-known URL 资源文件。
tls-sni-01:在域名对应的 Web 服务器下放置一个 HTTPS well-known URL 资源文件。
运行类似如下命令,使用dns验证域名所有权。这里强调下如果申请的是泛域名证书,-d参数必须把一级域名也添加进去,否则生成的证书无法应用到一级主域名。
certbot-auto certonly -d "blog.nbqykj.cn" -d "*.blog.nbqykj.cn" --manual --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory
执行完这一步之后,会下载一些需要的依赖,稍等片刻之后,会提示输入邮箱,随便输入都行【该邮箱用于安全提醒以及续期提醒】
按照提示,前往域名后台添加对应的DNS TXT记录。添加之后,不要心急着按回车,先执行dig -t txt xxxx.xxx.com,确认解析记录是否生效,生效之后再回去按回车确认。
如果是泛域名证书,-d有两个域名,那么需要添加修改两次dns域名解析。
最后确认之后看到类似如下页面就说明证书签发成功。
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/xxx.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/xxx.com/privkey.pem Your cert will expire on 2018-06-12. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again. To non-interactively renew *all* of your certificates, run "certbot-auto renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
到了这一步后,证书就大功告成了,快去应用到网页应用上吧。
文章不错非常喜欢