CentOS 7 配置 Let's Encrypt
-
安装 Certbot Let’s Encrypt 客户端
$ sudo yum install epel-release -y $ sudo yum-config-manager --enable epel $ sudo yum install certbot-nginx -y
-
设置 Nginx
$ sudo yum install nginx # 安装 nginx $ sudo systemctl start nginx # 启动 nginx 服务 $ sudo vi /etc/nginx/nginx.conf # 修改域名配置 $ sudo nginx -t # 检查 nginx 配置是否正确 $ sudo nginx -s reload # 重启 nginx 服务
-
修改防火墙配置(可选)
# firewalld $ sudo firewall-cmd --add-service=http $ sudo firewall-cmd --add-service=https $ sudo firewall-cmd --runtime-to-permanent # iptables $ sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT $ sudo iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-
获取证书
$ sudo certbot --nginx -d example.com -d www.example.com
可能需要填写邮箱注册 Certbot,根据提示操作即可。
-
更新 Diffie-Hellman 参数 SSL 质量测试
- 生成
dhparam
文件sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
- 添加
ssl_dhparam /etc/ssl/certs/dhparam.pem;
到文件/etc/nginx/nginx.conf
任意server
块内... server { ... ssl_dhparam /etc/ssl/certs/dhparam.pem; } ...
- 测试
sudo nginx -t
并刷新 nginx 配置sudo nginx -s reload
- 生成
设置自动更新证书 Crontab 教程
Certbot 证书有效期为 90 天,过期后需要重新获取证书,可以通过 Linux 的 Crontab 定时任务自动更新。通过sudo crontab -e
编辑用户自定义定时任务,插入15 3 * * * /usr/bin/certbot renew --quiet
(每天 3:15 执行任务/usr/bin/certbot renew
并通过--quiet
配置 “不等待输出信息就直接退出命令”)