Nginx配置HTTPS服务器需要先准备好SSL证书并上传到云服务器中,这里用到的主要是.crt
证书文件和.key
私钥文件。
Nginx配置中,需要给server
的listen
指令添加ssl
参数(监听443端口),表示该端口下接受的所有连接都应工作于SSL模式。以及设置ssl_certificate
指令和ssl_certificate_key
指令来指定对应文件。
如(此处.crt
文件和.key
文件位于Nginx配置文件目录中):
server {
listen 443 ssl;
server_name myserver.com;
ssl_certificate myserver.com.crt;
ssl_certificate_key myserver.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
...
}
ssl_protocols
指令用于设置启用指定SSL协议,默认为ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
。
ssl_ciphers
指令用于设置OpenSSL使用的加密套件,默认为ssl_ciphers HIGH:!aNULL:!MD5;
。
HTTP自动跳转HTTPS
配置好HTTPS服务器后,可以将HTTP请求重定向到HTTPS,示例配置如下:
server {
listen 443 ssl;
server_name myserver.com;
ssl_certificate myserver.com.crt;
ssl_certificate_key myserver.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
...
}
server {
listen 80;
server_name myserver.com;
return 301 https://$host$request_uri;
}
在HTTPS配置基础上添加一个server
,监听HTTP的默认端口80并重定向到HTTPS。
之后在浏览器中输入http://
开头的url进行访问时会自动跳转到https://
。