nginx配置https

发布时间 2023-12-21 08:49:30作者: 五官一体即忢

Nginx配置HTTPS服务器需要先准备好SSL证书并上传到云服务器中,这里用到的主要是.crt证书文件和.key私钥文件。

Nginx配置中,需要给serverlisten指令添加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://