在Linux下配置Nginx使用SSL证书,可以按照以下步骤进行操作,假设你已经安装了Nginx,并且拥有一个有效的SSL证书和私钥文件。
生成自签名证书(可选)
如果你还没有SSL证书,可以使用OpenSSL生成一个自签名证书用于测试:
openssl req newkey rsa:2048 nodes keyout server.key x509 days 365 out server.crt
这将生成两个文件:server.key
(私钥)和server.crt
(证书)。
获取证书文件
将你的SSL证书和私钥文件上传到服务器的某个目录,例如/etc/nginx/ssl/
.
修改Nginx配置文件
编辑Nginx配置文件,通常是/etc/nginx/sitesavailable/default
或你自定义的站点配置文件。
sudo nano /etc/nginx/sitesavailable/default
添加或修改以下配置:
server { listen 80; server_name your_domain.com; return 301 https://$host$request_uri; # 强制HTTP重定向到HTTPS } server { listen 443 ssl; server_name your_domain.com; ssl_certificate /etc/nginx/ssl/your_domain.crt; ssl_certificate_key /etc/nginx/ssl/your_domain.key; # SSL相关配置 ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers 'ECDHEECDSAAES256GCMSHA384:ECDHERSAAES256GCMSHA384'; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ssl_stapling on; ssl_stapling_verify on; add_header StrictTransportSecurity "maxage=31536000; includeSubDomains" always; location / { root /var/www/html; index index.html index.htm; } }
检查配置文件语法
在保存配置文件后,检查Nginx配置文件是否有语法错误:
sudo nginx t
如果输出显示syntax is ok
和test is successful
,则表示配置文件没有问题。
重启Nginx服务
重新加载或重启Nginx以应用新的配置:
sudo systemctl restart nginx
或者:
sudo systemctl reload nginx
验证配置
通过浏览器访问https://your_domain.com
,确认SSL证书已经正确配置,你也可以使用以下命令来检查:
echo | openssl s_client connect your_domain.com:443 servername your_domain.com | openssl x509 noout text
这会显示证书的详细信息,确保它与你期望的一致。
至此,Nginx的SSL证书配置已经完成。