在CentOS上启用Nginx的SSL加密,你需要遵循以下步骤:
安装Nginx(如果尚未安装):
sudo yum install epel-release
sudo yum install nginx
获取SSL证书: 你可以从Let’s Encrypt免费获取SSL证书,或者购买一个。以下是使用Certbot(Let’s Encrypt的客户端)获取证书的步骤:
安装Certbot和Nginx插件:
sudo yum install certbot python2-certbot-nginx
运行Certbot以获取并配置SSL证书:
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
将yourdomain.com和www.yourdomain.com替换为你的域名。
Certbot将自动配置Nginx并重启服务以应用更改。
手动配置SSL(如果你不使用Certbot):
创建一个新的Nginx服务器块文件,例如/etc/nginx/conf.d/yourdomain.com.conf:
sudo nano /etc/nginx/conf.d/yourdomain.com.conf
添加以下配置,替换yourdomain.com为你的域名,并指定证书和密钥文件的路径:
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/pki/tls/certs/yourdomain.com.crt;
ssl_certificate_key /etc/pki/tls/private/yourdomain.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
root /var/www/html;
index index.html index.htm;
}
# 其他配置...
}
测试Nginx配置是否正确:
sudo nginx -t
如果配置正确,重启Nginx以应用更改:
sudo systemctl restart nginx
重定向HTTP到HTTPS(可选): 如果你想将所有HTTP流量重定向到HTTPS,可以在Nginx配置中添加一个新的服务器块来处理HTTP请求:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
location / {
return 301 https://$host$request_uri;
}
}
确保这个服务器块在SSL配置之前定义,以便HTTP请求首先被捕获并重定向到HTTPS。
防火墙设置: 如果你有防火墙运行,确保开放443端口以允许HTTPS流量:
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
完成以上步骤后,你的CentOS服务器上的Nginx应该已经启用了SSL加密。记得定期更新你的证书以避免过期。如果你使用Certbot,它通常会为你处理证书的自动续期。