一、参考
Generate Wildcard SSL certificate using Let’s Encrypt/Certbot
CentOS 7: Auto-renew Let’s Encrypt SSL certificates using crontab
一、环境准备
1.1 一个域名
1.2 一台服务器
二、安装ssl证书
2.1 安装certbot
yum install certbot
查看版本信息
certbot --version
certbot 1.9.0
2.2 命令行生成证书
# 命令行参数如下
# email, 证书到期告警邮箱
# server, letsencrypt证书签发服务器
# d, 需要申请证书的域名
certbot certonly --manual
--preferred-challenges=dns
--email 15951606335@163.com
--server https://acme-v02.api.letsencrypt.org/directory
--agree-tos
--manual-public-ip-logging-ok
-d www.test.com
2.3 配置主机记录与记录值
(1) 需要先添加一条A
类型记录
(2) 配置txt
类型的记录
2.4 生成证书
证书保存目录为
/etc/letsencrypt/live/www.test.com
三、配置nginx
3.1 配置http重定向
server {
listen 80 default_server;
listen [::]:80 default_server;
return 301 https://$host$request_uri;
}
3.2 配置ssl
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name poetry.yzthewind.com;
root /usr/share/nginx/html;
ssl_certificate "/etc/letsencrypt/live/www.test.com/fullchain.pem";
ssl_certificate_key "/etc/letsencrypt/live/www.test.com/privkey.pem";
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
3.3 重启nginx
service restart nginx
四、其他
4.1 查看过期时间
一般证书过期时间为3个月,可以使用下面的两个命令
(1)
openssl x509 -noout -dates -in /etc/letsencrypt/live/www.test.com/cert.pem
(2)
certbot certificates
4.2 自动更新证书有效期
利用crontab -e
创建一个新的定期任务,执行证书更新
#每个月11号自动更新
0 0 11 * * /usr/bin/certbot renew >> /home/certbot.log 2>&1