zoukankan      html  css  js  c++  java
  • Nginx配置https站点

    Nginx配置HTTPS

    最近配置了现网网站的HTTPS,简单记录一下配置过程。

    先交代一下我的服务部署环境:Nginx监听80端口,转发到Tomcat8080端口;服务器使用的是阿里云的ECS,操作系统是Windows Server 2012CA证书也是在阿里云的CA证书服务上面申请的免费证书。
    1. 申请CA证书
    首先去购买CA证书。一般各大云服务提供商都会有此类证书服务,根据公司和业务需求,可以自己选择免费或者付费的证书。我选择的是Symantec 赛门铁克的免费型DV SSL,此类证书一个证书对应一个域名,如果涉及到二级域名需要另外申请一个二级域名的CA证书。阿里云上面的证书购买过程比较简单,需要注意的两个地方:1.要对域名进行验证;2.CSR的生成方式。如果自己的域名是放在阿里云解析上面的,阿里云会自动校验;如果域名没有在阿里云上面解析,需要按照阿里云的提示进行一下操作。另外CSR的生成方式建议选择系统生成CSR,自己生成CSR稍微麻烦一点。证书购买成功后补全好自己的域名即可。
    2. Nginx配置
    CA证书审核通过后,将证书下载到本地,会得到一个zip包,里面有xxx.keyxxx.pem两个文件。
    1) 在Nginx的安装目录下创建cert目录,并将xxx.keyxxx.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.pemxxx.key的存放路径,区分相对路径和决定路径使用方式;
    3. 通过Nginx安装目录下的logs文件夹中的access.logerror.log日志文件来进行排错;
    4. 同一个Nginx可以配置多个HTTPS的域名,只需要将上面443端口的监听配置复制一份加到配置文件中,然后修改好相应的server_namexxx.pemxxx.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;
        }
    }

    --------------------- 本文来自 肖老板 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/cloume/article/details/78252319?utm_source=copy

  • 相关阅读:
    P3932 浮游大陆的68号岛
    P4595 [COCI2011-2012#5] POPLOCAVANJE
    CF455E Function
    【转载】乱堆的东西
    BZOJ1034 [ZJOI2008]泡泡堂BNB[贪心]
    CSP2019退役记
    BZOJ5206 [Jsoi2017]原力[根号分治]
    luogu3651 展翅翱翔之时 (はばたきのとき)[基环树+贪心]
    BZOJ1040 [ZJOI2008]骑士[基环树DP]
    BZOJ3037 创世纪[基环树DP]
  • 原文地址:https://www.cnblogs.com/hoewang/p/10257205.html
Copyright © 2011-2022 走看看