试用 Let's Encrypt

 Oct. 27, 2015, 9:32 p.m.   2 comments    Nginx TLS

今早起床的时候收到来自 Let's Encrypt 的 Beta Program 的邀请,提醒我之前提交的域名已经被添加到 whitelist,可以申请 Let's Encrypt 的 TLS 证书啦。

Let's Encrypt 的证书签发流程不同于以往的证书商,它提供了一个客户端,使用这个客户端就可以以自动化的方式完成证书的申请和签发。

首先,需要从 Github 上 clone 下来 Let's Encrypt 的整个 repo:

git clone https://github.com/letsencrypt/letsencrypt

只需要一行命令就可以完成域名的认证以及证书的签发:

cd letsencrypt
./letsencrypt-auto --agree-dev-preview --server \
    https://acme-v01.api.letsencrypt.org/directory auth

在这个过程中会要求选择手动方式认证还是独立方式认证,如果选择独立认证会要求暂停占用443端口的 Nginx,我猜可能是要让认证服务器访问域名所对应服务器的443端口来完成域名的认证操作。

输入email和域名,完成认证。

这时候可以在/etc/letsencrypt/live/DOMAIN_NAME找到签发的证书,对于 Nginx 而言,只需要在配置文件中添加两行即可启用 Let's Encrypt 的 TLS 证书:

ssl_certificate /etc/letsencrypt/live/DOMAIN_NAME/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/DOMAIN_NAME/privkey.pem;

p.s. 目前一个证书的有效期是90天,官方建议每隔60天重新签发一次,未来应该会有自动化的工具可以做到自动续签。

有兴趣的同学可以填写下面的表单申请加入:

https://docs.google.com/forms/d/15Ucm4A20y2rf9gySCTXD6yoLG6Tba7AwYgglV7CKHmM/viewform?edit_requested=true


Jake Anderson

Jake Anderson Oct. 30, 2015, 2:32 a.m. Reply

thanks for sharing


PiEgg

PiEgg Dec. 11, 2015, 1:30 p.m. Reply

不知道为什么我的阿里云的机器在下发证书的时候死活DNS出问题,放到DO上的机器上就好了= =。。但是这样的话每次都要把域名指到DO上弄完证书再倒回来好麻烦。。。