Nginx + Tomcat + 的HTTPS 配置

一、配置nginx

 

1.将SSL证书放在 nginx/conf/cert 目录下。

2.修改nginx.conf。配置实例:

server {

listen 443 ssl;

server_name fssc.test.com; # 改为绑定证书的域名

ssl_certificate cert/1582243.pem; # 改为自己申请得到的 pem 文件的路径

ssl_certificate_key cert/1582243.key; # 改为自己申请得到的 key 文件的路径

ssl_session_timeout 5m;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;

ssl_prefer_server_ciphers on;

location / {

     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_set_header Host $http_host;

        proxy_set_header X-Forwarded-Proto https;

        proxy_redirect off;

}

}

3.配置修改完后,输入 ./nginx -s reload 重启Nginx。

 

二、还需配置tomcat。

 

将server.xml文件修改,实例如下:

1.修改connector节点配置。

<Connector port="8080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="443"

               proxyPort="443"/>

2.添加value节点配置

   <Valve className="org.apache.catalina.valves.RemoteIpValve"

                  remoteIpHeader="x-forwarded-for"

                  remoteIpProxiesHeader="x-forwarded-by"

                  protocolHeader="x-forwarded-proto"/>

 

参考:https://www.oschina.net/question/12_213459
 

三、常见问题

 

自己安装的nginx可能缺少ssl模块,导致nginx配置时报错。

nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:37

解决方法:nginx安装ssl模块。

参考:https://blog.csdn.net/u011789653/article/details/77935166

 

posted @ 2018-12-05 14:14  兮云飞扬  阅读(592)  评论(1编辑  收藏  举报