使用Certbot申请Let's Encrypt SSL证书
posts/%E4%BD%BF%E7%94%A8certbot%E7%94%B3%E8%AF%B7lets-encrypt-ssl%E8%AF%81%E4%B9%A6安装 CertBot
对于Debian发行版可使用apt直接进行安装 $ sudo apt install certbot
申请证书
Standalone
这种方式个人认为申请方便且速度最快,当服务器没有开启 Apache、Nginx 这类程序使用 80 或 443 端口时可以使用。
比如要对example.com
、one.example.com
和two.example.com
三个域名申请证书则需要使用
$ sudo certbot certonly --standalone -d example.com -d one.example.com -d two.example.com
对于*.example.com
泛域名输入该方法会失效 更推荐采用 DNS-Challenge 方式
Webroot
如果你已经有了 Nginx 服务器且正在运行则可以采用这种方式
-w
参数后接网站文件夹目录
$ sudo certbot certonly --webroot -w /var/www/example -d example.com -d one.example.com -d two.example.com
DNS-Challenge
对于*.example.com
泛域名可采用 DNS-Challenge
$ sudo certbot certonly --manual --preferred-challenges dns -d example.com -d *.example.com
后会提供一个 DNS Record 需要设置到你的域名上完成认证大概 DNS 更新需要一小时时间。
证书保存位置
申请成功后证书会保存在/etc/letsencrypt/live/example.com/
下,安全起见其权限设定为一般用户不可访问
自动续签
由于Let's Encrypt SSL
证书有效期为 3 个月所以我们需要定期对证书进行更新
这里采用 crontab 周期性自动执行命令
sudo crontab -e
加命令
a
编辑添加下面命令每两个月 1 日 0 点 0 分申请证书
0 0 1 */2 * certbot renew --pre-hook "service nginx stop" --post-hook "service nginx start"
wq
保存
可通过crontab -l
查看计划是否添加成功