在CentOS上配置Nginx以使用SSL证书的步骤如下:
首先,确保你的CentOS系统已经安装了Nginx和OpenSSL。如果没有安装,可以使用以下命令进行安装:
sudo yum update -y
sudo yum install nginx openssl
你可以从证书颁发机构(CA)获取SSL证书,例如Let’s Encrypt,或者生成自签名证书。以下是生成自签名证书的命令:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt
或者,如果你选择从CA获取证书,可以使用Certbot等工具自动获取和安装证书:
sudo yum install certbot python2-certbot-nginx
sudo certbot --nginx -d yourdomain.com -m youremail@example.com
在Nginx的安装目录下创建一个用于存放证书文件的目录,例如/etc/nginx/cert
:
sudo mkdir -p /etc/nginx/cert
将获取到的证书文件(通常包括.crt
和.key
文件)上传到Nginx服务器的证书目录下:
sudo cp /path/to/your_certificate.crt /etc/nginx/cert/
sudo cp /path/to/your_certificate.key /etc/nginx/cert/
编辑Nginx的配置文件,通常位于/etc/nginx/nginx.conf
或/etc/nginx/conf.d/default.conf
。你可以创建一个新的配置文件,例如/etc/nginx/conf.d/ssl.conf
。添加以下内容:
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/nginx/cert/your_certificate.crt;
ssl_certificate_key /etc/nginx/cert/your_certificate.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'HIGH:!aNULL:!MD5';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
location / {
root /var/www/html;
index index.html index.htm;
}
}
server {
listen 80;
server_name yourdomain.com;
return 301 https://$host$request_uri;
}
在重新加载Nginx之前,先测试配置文件是否有语法错误:
sudo nginx -t
如果没有错误,你会看到类似以下的输出:
nginx: configuration file /etc/nginx/nginx.conf test is successful
如果配置文件没有问题,重新加载Nginx以应用更改:
sudo systemctl reload nginx
使用浏览器访问你的网站,检查地址栏中的锁图标是否显示为绿色,表示SSL配置成功。你还可以使用在线工具如SSL Labs进行更详细的测试。
以上步骤完成后,你的Nginx服务器应该已经成功配置了SSL证书,并且可以通过HTTPS提供服务。