nginx+tomcat实现同一台服务器上的不同站点使用不同的SSL证书开启https服务

by Administrator 2018.4.14 12:19

   非通配符证书只能支持一个域名,当多个子域名的应用部署同一服务器时,访问https都默认用到了443,这将造成 同服的子域名即使有多个子域名证书,也只能有一个域名能配置https,这时就需设置tomcat 默认的https 转发端口了。

   nginx侧的配置无异,监听443,然后转发到tomcat的http就可以了。tomcat发现是https就跳转到你设置的转发端口,如此,就可以一服部署多个使用免费非通配符证书的多域名https服务了。

   参考如下:

 

前端nginx https +tomcat http 非80端口配置方式

 

Nginx增加以下配置

 

proxy_set_header Host $host:$server_port; 非80端口 ,用80端口时 不需要$server_port

 

proxy_set_header X-Real-IP $remote_addr;

 

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

 

proxy_set_header X-Forwarded-Proto $scheme;

 

 

 

Tomcat server.xml配置

 

 <Engine name="Catalina" defaultHost="localhost">

 

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

 

             remoteIpHeader="X-Forwarded-For"

 

             protocolHeader="X-Forwarded-Proto"

 

             protocolHeaderHttpsValue="https"  httpsServerPort="7001"/> 非80端口时,必须增加httpsServerPort配置,不然request.getServerPort()方法返回 443.

 

</Engine>

Tags:

Win2003 Linux

关于博主

      什么都懂一点儿,热衷技术,热爱Programming,每有难题,常夜以继日,每有解决方案,手舞足蹈而欣喜若狂;好读书,不求甚解;每有会意,便欣然忘食;常纵情于山水之间,忘乎于尘世之外,唯程序难释怀尔。
       QQ:51557288

归档

最近的评论

声明

本博所有网友评论不代表本博立场,版权归其作者所有。

© Copyright 2011