Nginx htpps配置

2018-03-28  本文已影响0人  hahaxiou

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;

    }

}

上一篇下一篇

猜你喜欢

热点阅读