在CentOS上为Nginx启用SSL,你需要遵循以下步骤:
获取SSL证书:
安装Certbot(如果你选择使用Let’s Encrypt): Certbot是一个自动化的工具,可以帮助你获取和更新Let’s Encrypt证书。在CentOS上安装Certbot的命令如下:
sudo yum install epel-release
sudo yum install certbot python-certbot-nginx
运行Certbot获取证书: 使用Certbot获取证书的命令如下:
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
替换yourdomain.com和www.yourdomain.com为你的域名。Certbot会自动配置Nginx并重启服务。
手动配置Nginx(如果你不使用Certbot):
如果你选择手动配置SSL,你需要编辑Nginx的配置文件。通常,这些文件位于/etc/nginx/conf.d/或/etc/nginx/sites-available/目录下。
下面是一个基本的SSL配置示例:
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /path/to/your/fullchain.pem;
ssl_certificate_key /path/to/your/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:AES256+EDH';
location / {
root /var/www/html;
index index.html index.htm;
}
# 其他配置...
}
确保将/path/to/your/fullchain.pem和/path/to/your/privkey.pem替换为你的SSL证书和私钥的实际路径。
测试Nginx配置: 在重新加载Nginx之前,你应该测试配置文件是否有语法错误:
sudo nginx -t
重新加载Nginx: 如果配置测试成功,重新加载Nginx以应用更改:
sudo systemctl reload nginx
设置自动续期(如果你使用Let’s Encrypt): Let’s Encrypt证书有效期为90天,因此你需要设置自动续期。Certbot会创建一个定时任务来自动续期证书:
sudo crontab -e
查找以下行并取消注释(删除行首的#):
0 */12 * * * root certbot renew --post-hook "systemctl reload nginx"
这将确保每12小时检查一次证书是否需要续期,并在续期后重新加载Nginx。
完成以上步骤后,你的Nginx服务器应该已经成功启用了SSL。记得定期检查证书的有效期,并确保自动续期机制正常工作。