http://域名:2123 可以访问
开启SSL之后,带端口号就访问不了了
https://域名:2123 不可以访问
请问这是为什么呢,怎么才能让https://域名:2123也可以访问呢
SSL方案:
1、NGINX做ssl握手,其与TOMCAT之间仍旧HTTP协议(当NGINX和TOMCAT在同一相对安全的内网时这样做可以减少SSL握手次数)。NGINX的代理转发(proxy_redirect:反向替换proxy_pass或上游,如TOMCAT返回的URL),从HTTP的替换成HTTPS。可包括多条proxy_redirect配置。注意端口号如需要替换也要写入。
2、NGINX强制将接收到的HTTP请求rewrite为HTTPS
3、NGINX做优化方案,包括keepalive_timeout,开启ssl的session缓存。
4、TOMCAT和项目代码及配置文件(目前)不需要变更。
5、需要注意的是,程序从HTTP头部获取的信息,包括HTTPS协议,端口号,客户IP等,数据是正确的。但,若用request.getScheme();(HTTP or HTTPS)request.isSecure();(是否安全,boolean)request.getRequestURL().toString();(URL,带协议名)request.getRemoteAddr();(客户IP地址)等,获取则是错误的,request的信息有nginx转发到tomcat,并未做替换处理,因此获取到的都是nginx的信息,如有需要,在tomcat的server.xml设置一个valve。_