安装certbot
yum install certbot python2-certbot-nginx
1. 使用nginx插件自动配置
certbot --nginx
2. 手动配置
2.1 修改nginx配置文件
#certbot --nginx自动生成的配置(推荐)
server {
listen 443 ssl;
server_name exp.com;
ssl_certificate /etc/letsencrypt/live/exp.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/exp.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
#其他配置方式(可能无法正常工作)
server {
listen 443 ssl;
server_name exp.com;
ssl_certificate /etc/letsencrypt/live/exp.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/exp.com/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
}
2.2 申请泛域名证书
certbot certonly --manual --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory -d "*.exp.cn" -d "*.exp.com"
该方式生成的证书(注:续期仍然使用该命令进行续期),无法应用到一级域名exp.cn和exp.com,所以还需要使用certbot --nginx
来额外单独生成一级域名的证书。
2.3 续期
通过certbot --nginx
生成的证书,使用certbot renew
进行续期。泛域名证书,使用申请的命令进行续期。
crontab定时任务无法正常工作
crontab -e
0 0 * * * "systemctl stop nginx ; /bin/certbot renew ; systemctl restart nginx"
#或者
0 3 * * * /bin/certbot renew >/home/certbot/runtime.log 2>&1
3. 修改证书域名
查看证书
certbot certificates
...
Certificate Name: exp.com
...
修改证书包含的域名
certbot --cert-name exp.com -d exp.com -d bar.com -d baz.com
或把域名写到一起,用“,”隔开
certbot --cert-name exp.com -d exp.com,bar.com,baz.com
注意,修改时一定要把所有(新/旧)域名都加上去。因为本质上这是个证书域名修改操作,而不是添加,不然旧域名会出现缺少证书的问题。
4. 撤销证书
certbot revoke --cert-path /etc/letsencrypt/live/exp.com/fullchain.pem
文章作者:DOTATONG
发布日期:2021-02-23
评论