Let’s Encrypt 是一个开源且免费的SSL证书平台,由于其没有如其他收费证书一样的在线申请平台,其申请起来相对麻烦

官方推出的Certbot工具则可以极大的简化申请过程

获取Certbot

在Linux服务器上运行下面的命令便可以直接获取Certbot

wget https://dl.eff.org/certbot-auto
chmod a+x ./certbot-auto

利用Standalone方式部署证书

只需要运行下面的命令即可,非常方便:

./certbot-auto certonly --text --agree-tos --email webmaster@example.com --standalone -d example.com -d www.example.com -d service.example.com

其中-d 为需要部署证书的域名,–email需要替换为自己的email

需要注意的是,standalone会开启一个新的webserver来做域名所有权的验证,所以在运行上述命令之前,请先将已有的webserver关闭

运行结束后,屏幕上会出现SSL证书的存储位置,把它导入到nginx中即可

利用 *Webroot * 方式部署证书

在虚拟主机对应的nginx配置文件中添加下面的代码

location ^~ /.well-known/acme-challenge/ {
   default_type "text/plain";
   root     /home/wwwroot/linuxstory.org/;
}

location = /.well-known/acme-challenge/ {
   return 404;
}

重载nginx:

sudo nginx -s reload

再运行下面的代码获取证书:

./certbot-auto certonly --root -w /home/wwwroot/XXX -d  yourwebsite.com

部署完毕后将nginx中上面的代码移除即可

配置续期

为了保证安全, Let’s Encrypt 的证书有效期只有90天,因此我们可以手动续期或者配置自动续期

自动续期:

./certbot-auto renew --quiet --no-self-upgrade

手动续期:

./certbot-auto renew -v