为网站接入免费SSL证书let's encrypt 并实现自动续签功能

发布时间 2023-10-17 11:28:00作者: 童年的回忆

以ubuntu系统为例:

1.安装certbot:

apt update
apt upgrade
sudo apt install certbot python3-certbot-nginx

2.验证Web服务器端口是否打开并允许通过防火墙

sudo ufw status verbose

3.获取SSL证书

sudo certbot --nginx -d your_domain.com -d www.your_domain.com

4.检查Certbot的状态

sudo systemctl status certbot.timer

5.检查证书到期时间:

openssl x509 -noout -dates -in /etc/letsencrypt/live/{域名}/cert.pem

也可以直接打开浏览器访问域名,点击域名前面的小锁,点击 "连接是安全的" -> “证书有效”查看:

 

 6.手动运行SSL续订:

certbot renew --force-renew  

7.配置到crontab中自动续签:(此处有坑,我专门开了另一篇文章去讨论,有兴趣的可以看看)

crontab -e //编辑计划任务

SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 01 01 01 * * /usr/bin/sh /home/xxx/htdocs/www.xxx.com/crontab.sh>a.log 2>&1

crontab.sh脚本内容:
#!/bin/bash

/usr/bin/certbot renew --force-renew && nginx -s reload