使用certbot实现免费ssl证书申请和自动续期工具安装和配置
有如下两种方式实现,第一种全自动,通过certbot nginx插件读取nginx配置,管理nginx实现ssl证书的申请、部署和续期;第二种通过手动申请证书,手动管理nginx ssl证书,通过crontab定时任务实现证书的自动续期;
1、自动申请/部署ssl证书到nginx
-
安装 certbot 以及 certbot nginx 插件
sudo yum install -y epel-release sudo yum install -y certbot sudo yum install -y python3-certbot-nginx
-
执行配置自动申请证书并配置,中途会询问你的邮箱,如实填写即可
sudo certbot --nginx
-
自动续约
sudo certbot renew --dry-run
-
查看证书有效期
openssl x509 -noout -dates -in /etc/letsencrypt/live/{域名}/cert.pem
2. 手动申请、配置、定时任务续期
-
安装certbot
yum install -y epel-release yum install -y certbot
-
手动申请方式
sudo certbot certonly --webroot -w 根路径地址 -d xxx.cn -d www.xxx.cn -m xxx@pddon.com --agree-tos
申请成功后,会在/etc/letsencrypt/live/{域名}/下生成证书一些文件。
-
打开nginx配置文件并添加ssl证书地址
vi /etc/nginx/nginx.conf
server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name xxx.cn www.xxx.cn; root /usr/share/nginx/html; ssl_certificate /etc/letsencrypt/live/xxx.cn/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/xxx.cn/privkey.pem; # managed by Certbot ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_ciphers PROFILE=SYSTEM; ssl_prefer_server_ciphers on;
-
更新证书
certbot renew --dry-run #返回的信息 certbot renew --quiet #不返回的信息,静默方式
-
使用定时任务申请ssl续期
crontab -e #每天5点执行一次 0 05 * * * certbot renew --quiet && nginx -s reload
-
查看证书有效期
openssl x509 -noout -dates -in /etc/letsencrypt/live/{域名}/cert.pem