一、安装并配置ssl
1、安装 certbot
yum install -y epel-release
yum install -y certbot
2、执行申请命令
- 单域名SSL证书
certbot certonly --webroot -w [站点目录] -d [域名] -m [联系人email] --agree-tos
- 泛域名SSL证书
certbot certonly --manual --preferred-challenges dns -d "*.域名" -w 站点目录
运行命令后,Certbot 会生成类似下面的信息:
Please deploy a DNS TXT record under the name:
_acme-challenge.域名
with the following value:
QrStUvWxAbCdEfGhIjKlMnOpYz
注意主机记录名就是 _acme-challenge 不需要加后面的域名,Certbot 可能会连续要求两次添加,就像图片里一样,每次添加完按 Enter 即可。最后等待几十秒,确保 DNS 传播开来,这时可以删除 DNS 解析记录了
3、申请成功后,会在/etc/letsencrypt/live/{域名}/下生成证书一些文件
4、可以查看一下证书有效期
openssl x509 -noout -dates -in /etc/letsencrypt/live/{域名}/fullchain.pem
5、Nginx配置ssl
- 增加软链
ln -s /etc/letsencrypt/live/{域名}/fullchain.pem cert/{域名}.crt
ln -s /etc/letsencrypt/live/{域名}/privkey.pem cert/{域名}.key
- 开启ssl配置
server{
listen 443 ssl http2;
......
ssl_prefer_server_ciphers on;
#ssl on;
keepalive_timeout 70;
ssl_certificate ./cert/{域名}.crt;
ssl_certificate_key ./cert/{域名}.key;
ssl_protocols TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;
add_header Strict-Transport-Security "max-age=31536000;
includeSubDomains;preload" always;
.......
}
6、重启Nginx
二、自动续签
1、更新证书
certbot renew --dry-run #返回的信息
certbot renew --quiet #不返回的信息,静默方式
2、加入crontab
0 05 * * * certbot renew --quiet && nginx -s reload