Nginx配置https的实现需要进行以下几个步骤:
1. 申请SSL证书
首先需要申请可信的SSL证书,可以选择一些常见的证书颁发机构(CA)如LetsEncrypt等,也可以自己生成证书。如果是自己生成,则需要使用openssl命令生成证书:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365
该命令会生成一个将签名为1年的自签名证书(可以根据实际需要修改该命令)。证书会保存在cert.pem文件中,私钥会保存在key.pem文件中。接下来需要将证书和私钥拷贝到Nginx服务器,并保存到合适的目录中。
2. 修改Nginx配置文件
找到Nginx配置文件(一般为/etc/nginx/nginx.conf),添加以下内容:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
root html;
index index.html index.htm;
}
}
其中ssl_certificate
和ssl_certificate_key
分别指定了SSL证书和私钥的路径。location
块指定了Nginx服务器的根目录及默认文件。
注意:要启用HTTP到HTTPS自动重定向功能,还需要添加一个HTTP服务器块,将http请求自动重定向到https:
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
3. 重启Nginx
配置完成后,需要重启Nginx服务器,使配置生效:
sudo systemctl restart nginx
示例1:允许特定的加密协议和加密算法
可以在Nginx配置文件中添加以下选项,限制使用的SSL版本和加密算法:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
其中,ssl_protocols
指定了支持的协议版本,ssl_ciphers
指定了支持的加密算法,仅支持两个算法:ECDHE-ECDSA-AES256-GCM-SHA384
和ECDHE-RSA-AES256-GCM-SHA384
。
示例2:配置HTTP/2
可以在Nginx配置文件中添加以下选项,启用HTTP/2:
listen 443 ssl http2;
以上就是Nginx配置https的实现完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Nginx配置https的实现 - Python技术站