美文网首页
Nginx htpps配置

Nginx htpps配置

作者: hahaxiou | 来源:发表于2018-03-28 15:59 被阅读0次

    1. 申请CA证书 

    首先去购买CA证书。一般各大云服务提供商都会有此类证书服务,根据公司和业务需求,可以自己选择免费或者付费的证书。我这里选择的是Symantec 赛门铁克的免费型DV SSL,此类证书一个证书对应一个域名,如果涉及到二级域名需要另外申请一个二级域名的CA证书。阿里云上面的证书购买过程比较简单,需要注意的就两个地方:1.需要对域名进行验证;2.CSR的生成方式。如果自己的域名是放在阿里云解析上面的,阿里云会自动校验;如果域名没有在阿里云上面解析,需要按照阿里云的提示进行一下操作。另外CSR的生成方式建议选择系统生成CSR,自己生成CSR稍微麻烦一点。证书购买成功后补全好自己的域名即可。 

    2. Nginx配置 

    CA证书审核通过后,将证书下载到本地,会得到一个zip包,里面有xxx.key和xxx.pem两个文件。 

    1) 在Nginx的安装目录下创建cert目录,并将xxx.key和xxx.pem拷贝到该目录中。注意:如果是自己生成的CSR文件,应该只有一个xxx.key文件,将该文件拷贝进去就可以了。 

    2) 打开conf目录中的nginx.conf配置文件修改443端口监听配置。Nginx默认配置是将443端口的监听配置注释掉了的,如下:

    # 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 / {

    #

    #

    #}

    #}

    将注释打开,并对其中部分内容进行修改,修改后如下:

    server {

        listen 443;

        server_name your-domain-name;

        ssl on;

        root html;

        index index.html index.htm;

        ssl_certificate  cert/214293826510663.pem;

        ssl_certificate_key  cert/214293826510663.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;

        }

    }

    3) 修改配置并保存后,Nginx安装目录运行nginx.exe -s reload命令可重启Nginx使配置生效。 

    4) 通过https:\\xxxx.com方式访问你的网站,如果能够正常访问,浏览器左边出现绿色的标记或者出现锁的标记那就成功了。

    几点注意事项:

    1. 如果HTTPS方式访问网站出现无响应的情况,可以看看自己的服务器防火墙配置,是不是需要将443端口加到例外中去; 

    2. 注意自己xxx.pem和xxx.key的存放路径,区分相对路径和决定路径使用方式; 

    3. 通过Nginx安装目录下的logs文件夹中的access.log和error.log日志文件来进行排错; 

    4. 同一个Nginx可以配置多个HTTPS的域名,只需要将上面443端口的监听配置复制一份加到配置文件中,然后修改好相应的server_name、xxx.pem和xxx.key文件路径即可。

    补充一点配置: 

    如果Nginx配置了HTTPS,那背后的Tomcat就没有必要再进行配置了,另外,为了兼容原来80端口的HTTP方式的访问,可以将80端口的访问请求全部转发到443端口上,增加配置如下:

    server {

        listen      80;

        server_name  your-domain.com;

        location = / {

            rewrite ^(.*) https://your-domain.com/$1 permanent;

        }

        location / {

            rewrite ^(.*) https://your-domain.com/$1 permanent;

        }

    }

    相关文章

      网友评论

          本文标题:Nginx htpps配置

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