4087

Centos用Certbot安装ssl证书

安装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

评论

暂无

添加新评论