在CentOS上为Nginx启用SSL,你需要完成以下步骤:
安装Nginx(如果你还没有安装):
sudo yum install epel-release
sudo yum install nginx
获取SSL证书: 你可以从Let’s Encrypt免费获取SSL证书,或者购买一个证书。使用Certbot可以自动化这个过程。
安装Certbot和Nginx插件:
sudo yum install certbot python2-certbot-nginx
运行Certbot获取证书:
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
Certbot会自动配置Nginx并启用SSL。它会要求你确认一些信息,并且可能会要求你重新加载Nginx。
手动配置SSL (如果你不想使用Certbot): 如果你想手动配置SSL,你需要创建一个SSL证书文件和一个私钥文件。你可以从Let’s Encrypt获取免费的证书,或者使用其他证书颁发机构。
创建一个私钥文件(如果还没有):
sudo openssl genrsa -out /etc/nginx/ssl/yourdomain.com.key 2048
创建一个证书签名请求(CSR):
sudo openssl req -new -key /etc/nginx/ssl/yourdomain.com.key -out /etc/nginx/ssl/yourdomain.com.csr
在这个过程中,你需要填写一些信息,比如国家、组织名称等。
提交CSR给证书颁发机构,并按照他们的指示获取证书文件。
一旦你有了证书文件(通常是.crt或.pem格式),你可以配置Nginx来使用它。
配置Nginx:
编辑Nginx的配置文件,通常位于/etc/nginx/nginx.conf或/etc/nginx/conf.d/default.conf。
在server块中添加或修改以下内容:
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/nginx/ssl/yourdomain.com.crt;
ssl_certificate_key /etc/nginx/ssl/yourdomain.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:AES256+EDH';
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
# Additional configuration settings
}
确保将yourdomain.com和证书文件的路径替换为你的实际域名和证书文件的路径。
重新加载Nginx: 保存配置文件后,重新加载Nginx以应用更改:
sudo nginx -t # 检查配置文件是否有语法错误
sudo systemctl reload nginx # 重新加载Nginx服务
测试SSL配置:
使用浏览器访问https://yourdomain.com,你应该能看到一个安全的连接,并且浏览器地址栏应该显示一个锁形图标。
请注意,这些步骤可能会随着操作系统版本、Nginx版本和Certbot版本的不同而略有变化。始终确保遵循最新的官方文档和指南。