在 CentOS 上为 Nginx 获取免费的 SSL/TLS 证书可以通过 Let's Encrypt 和 Certbot 工具实现。下面是详细的步骤:
步骤 1: 安装 Certbot
-
更新系统软件包:
sudo yum update
-
安装 EPEL 仓库: Let's Encrypt 的 Certbot 在 EPEL 仓库中可用,因此您需要先安装 EPEL:
sudo yum install epel-release
-
安装 Certbot 和 Nginx 插件:
sudo yum install certbot python2-certbot-nginx
步骤 2: 配置 Nginx
在获取证书之前,确保 Nginx 已经安装并配置好,且能够通过 HTTP 访问您的域名。
-
创建或编辑 Nginx 配置文件,确保您的服务器块(server block)配置正确:
server { listen 80; server_name your-domain.com www.your-domain.com; location / { # Your configuration here } }
-
测试 Nginx 配置:
sudo nginx -t
-
重启 Nginx:
sudo systemctl restart nginx
步骤 3: 获取 SSL 证书
-
运行 Certbot:
sudo certbot --nginx
-
按照提示操作:
- 输入您的电子邮件地址并接受服务条款。
- Certbot 会自动检测您配置的域名并生成 SSL 证书。
步骤 4: 验证证书
安装完成后,您可以通过访问您的网站并检查 HTTPS 连接来验证 SSL 证书是否成功安装。例如,在浏览器中访问:
https://your-domain.com
步骤 5: 设置自动续期
Let's Encrypt 证书有效期为 90 天,因此需要定期续期。您可以手动测试续期:
sudo certbot renew --dry-run
要自动续期,您可以创建一个 cron 任务:
-
编辑 crontab:
sudo crontab -e
-
添加以下行以每天检查一次证书:
0 0 * * * /usr/bin/certbot renew --quiet
总结
- 使用
yum
安装 Certbot 和 Nginx 插件。 - 配置 Nginx 以确保 HTTP 可访问。
- 运行 Certbot 获取免费的 SSL/TLS 证书。
- 验证证书并设置自动续期。