美文网首页
Nginx系列14:ssl配置https服务

Nginx系列14:ssl配置https服务

作者: joyitsai | 来源:发表于2019-04-11 11:43 被阅读0次

ngx_http_ssl_module模块提供对HTTPS必要的支持。
这个模块不是系统默认的内建模块, 需要采用–with-http_ssl_module指令开启相关的配置。
这个模块需要OpenSSL库的支持

1、ssl on | off;
为指定虚拟机启用HTTPS protocol,建议用listen指令代替
可用位置:http, server

2、ssl_certificate file;
当前虚拟主机使用PEM格式的证书文件
可用位置:http, server

3、ssl_certificate_key file;
当前虚拟主机上与其证书匹配的私钥文件
可用位置:http, server

4、ssl_protocols [SSLv2] [SSLv3] [TLSv1] [TLSv1.1] [TLSv1.2];
支持ssl协议版本,默认为后三个
可用位置:http, server

5、ssl_ciphers ciphers;
默认: ssl_ciphers HIGH:!aNULL:!MD5;
指定启用的密码。密码以OpenSSL库理解的格式指定,例如:

ssl_ciphers ALL:!aNULL:!EXPORT56:RC4 + RSA:+ HIGH:+ MEDIUM:+ LOW:+ SSLv2:+ EXP;

可用位置: http, server

6、ssl_session_cache off | none | [builtin[:size]] [shared:name:size];
builtin[:size]:使用OpenSSL内建缓存,为每worker进程私有
[shared:name:size]:在各worker之间使用一个共享的缓存
可用位置:http, server

7、ssl_session_timeout time;
客户端连接可以复用sslsession cache中缓存的ssl参数的有效时长,默认5m
可用位置:http, server

8、ssl_prefer_server_ciphers on | off;
指定在使用SSLv3和TLS协议时,服务器密码应优先于客户端密码。可以使用server服务器的偏好来使用openssl的加密算法套件,openssl提供了算法套件的偏好的配置功能。
可用位置:http, server

示例:

http{
    #http节点中可以添加多个server节点
    server{
        #监听443端口
        listen 443;
        server_name yourweb.com;
        ssl on;
        ssl_certificate /path/xx.pem;
        ssl_certificate_key /path/xx.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        #我们使用阿里云官方文档中的ssl_ciphers来配置
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_prefer_server_ciphers on;
  
        location / {  
                root /usr/local/service/ROOT;
                index index.html;
        }
    }

}

到这里还不行,因为如果用户使用的是http协议进行访问,那么默认打开的端口是80端口,所以我们需要做一个重定向,我们在上一个代码块的基础上增加一个server节点提供重定向服务。

http{
    server{
        listen 443;
        server_name yourweb.com;
        ssl on;
        ssl_certificate /path/xx.pem;
        ssl_certificate_key /path/xx.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_prefer_server_ciphers on;
     
        location / {
                root /usr/local/service/ROOT;
                index index.html;
        }
    }
    server{
        listen 80;
        server_name baofeidyz.com;
        rewrite ^/(.*)$ https://baofeidyz.com:443/$1 permanent;
    }

}

相关文章

网友评论

      本文标题:Nginx系列14:ssl配置https服务

      本文链接:https://www.haomeiwen.com/subject/jfoziqtx.html