nginx配置强制性http转到https

发布时间:2018-03-16作者:laosun阅读(3021)

nginx配置强制性http转到https

上一篇文章推荐了一个免费的阿里云产品:云盾证书(https证书),现在呢,我来分享一下我的配置,以及配置完成后,使原有的http强制性转到https的做法

    文件说明:
    1. 证书文件214547297250715.pem,包含两段内容,请不要删除任何一段内容。
    2. 如果是证书系统创建的CSR,还包含:证书私钥文件214547297250715.key。
    ( 1 ) 在Nginx的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为214547297250715.key;
    ( 2 ) 打开 Nginx 安装目录下 conf 目录中的 nginx.conf 文件,找到:
    # HTTPS server
    # #server {
    # listen 443;
    # server_name localhost;
    # ssl on;
    # ssl_certificate cert.pem;
    # ssl_certificate_key cert.key;
    # ssl_session_timeout 5m;
    # ssl_protocols SSLv2 SSLv3 TLSv1;
    # ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    # ssl_prefer_server_ciphers on;
    # location / {
    #
    #
    #}
    #}
    ( 3 ) 将其修改为 (以下属性中ssl开头的属性与证书配置有直接关系,其它属性请结合自己的实际情况复制或调整) :
    server {
        listen 443;
        server_name localhost;
        ssl on;
        root html;
        index index.html index.htm;
        ssl_certificate   cert/214547297250715.pem;
        ssl_certificate_key  cert/214547297250715.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        location / {
            root html;
            index index.html index.htm;
        }
    }

    保存退出。

    ( 4 )重启 Nginx。
    ( 5 ) 通过 https 方式访问您的站点,测试站点证书的安装配置

    上边是阿里云官方给的方式。下边是我自己的server配置文件,我删减了一下,弄了一个基本的简版。

    upstream www.xxx.com{
            ip_hash;
            server 127.0.0.1:8888;
        }


    某某server

    server {
        listen                     443;
        server_name                XXX.com www.xxx.com;
        ssl                        on;
        ssl_certificate            cert/214547297250715.pem;
        ssl_certificate_key        cert/214547297250715.key;
        ssl_session_timeout        5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers     on;
        
        location / {
            proxy_pass			http://www.xxx.com;
        }
    }
    server {
            listen          *:80;
    	server_name	xxx.com www.xxx.com;       
    	return          301 https://www.xxx.com$request_uri;
    }


    通过这个方式即可使http强制性不动声色的转到的https,让你的网站更安全!!!

    接入HTTPS,给网站加一把绿色小锁,看着多牛逼

    这个免费证书的具体申请方式请查看这篇文章 http 改 https 的方法,免费的阿里云盾证书(https证书)


0 +1

版权声明

 Java  安全  nginx

 请文明留言

0 条评论