`

Tomcat http转https

 
阅读更多
在使用阿里云的SLB时发现将https映身上http时,当使用response.sendRedirect进行转身时会跳成http请求。这是因为tomcat把请求来源当成了http.

使用以下方法来解决这个问题:

1. 在SLB的基本配置的高级配置中开启SLB监听协议。

2. 修改tomcat配置文件
2.1  设定TOMCAT的使用前端代理模式,解决TOMCAT中程序的redirect没有跳转到SSL的问题。
<Connector port="8080"
  proxyName="这里是域名"
  proxyPort="443"
  scheme="https"
  secure="true"

  protocol="org.apache.coyote.http11.Http11NioProtocol"
  connectionTimeout="20000" URIEncoding="UTF-8" useBodyEncodingForURI="true"
  redirectPort="8443" />
上述的含义是,
SLB的域名是proxyName
SLB对外端口是proxyPort
SLB使用的协议是https
SLB是否开启SSL:secure

2.2 设定X-Forwarded过滤器
在server.xml中的<Engine>元素下增加如下内容:
<Valve className="org.apache.catalina.valves.RemoteIpValve"
    internalProxies="47\.74\.\d{1,3}\.\d{1,3}"
    remoteIpHeader="X-Forwarded-For"
    protocolHeader="X-Forwarded-Proto"
    protocolHeaderHttpsValue="https"/>

internalProxies的意思是:TOMCAT仅接受这个IP段过来的请求中的X-Forwarded系列的值覆写为Remote_Addr等。加了这个过滤器之后使用request.getRemoteAddr()就可以获取到正确的客户端IP了。需要注意的是,这个IP段需要根据你所用的SLB来写。

在TOMCAT里,internalProxies的默认值为(无法覆盖到SLB的IP段):
10\.\d{1,3}\.\d{1,3}\.\d{1,3}|192\.168\.\d{1,3}\.\d{1,3}|169\.254\.\d{1,3}\.\d{1,3}|127\.\d{1,3}\.\d{1,3}\.\d{1,3}|172\.1[6-9]{1}\.\d{1,3}\.\d{1,3}|172\.2[0-9]{1}\.\d{1,3}\.\d{1,3}|172\.3[0-1]{1}\.\d{1,3}\.\d{1,3} 
特别注意:
这个<Value>一定要写在<Engine>元素下!
这个<Value>一定要写在<Engine>元素下!
这个<Value>一定要写在<Engine>元素下!
不要跟在<Host>里面
分享到:
评论

相关推荐

    tomcat http转https.docx

    tomcat http转https.docx

    tomcat http 转 https

    由于小程序需要使用https协议,在使用用腾讯云的服务器时,负载均衡服务器(SSL证书部署在此服务器上)与业务服务器上的apache之间使用的是http,apache与tomcat之间也使用的是http,这样导致两个问题,tomcat 在redirect的...

    springboot内置tomcat与外部tomcat配置https访问及http自动转向https

    springboot内置tomcat与外部tomcat配置https访问及http自动转向https

    tomcat7的http转https.docx

    Tomca7的http转https详细教程,附截图附教程,仅供学习参考。

    腾讯云申请免费ssl证书配置tomcat使http变https

    主要介绍了腾讯云申请免费ssl证书配置tomcat使http变https,详细的介绍了每个步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Tomcat更换SSL证书方法(jks与pfx转换)

    该文档提供JKS转换为PFX的方法 使用JWSDP工具包中的工具 •安装J2SE 1.5,下载并运行jdk-1_5_0_09-windows-i586-p.exe •下载并安装jave web service develop pack, jwsdp-2_0-windows-i586.exe ...

    tomcat10升级单个jar里面的jakarta.servlet.http.HttpServletRequest

    直接进入lib文件夹: 源文件:commons-fileupload-1.4.jar 目的:tomcat10版本导致List&lt;FileItem&gt; fileItems = sfu.parseRequest(request) ...参考说明地址:https://github.com/apache/tomcat-jakartaee-migration

    apache-tomcat-9.0.26.zip

    tomcat9(linux)配置https,直接解压部署就可以。记住将service.xml中的密钥地址和密码填写成你...证书建议大家去腾讯云或者阿里云申请,可以免费使用一年。此版本并没有强制指定http转https,如有需要请自行配置。

    Tomcat配置https并访问http自动跳转至https

    Tomcat配置https、访问http自动跳转至https 1、配置Tomcat,打开$CATALINA_HOME/conf/server.xml,修改如下 &lt;Connector port=8080 protocol=HTTP/1.1 connectionTimeout=20000 redirectPort=8443&gt; 修改参数==&gt; ...

    apache-tomcat-8.0.53.zip增加https证书及配置

    里面已经生成10十年的单向https证书,并且已配置好可以直接使用。集体生成和配置方式可见博客,里面有详细步骤。

    Tomcat 证书部署.docx

    Tomcat 证书部署需要完成证书的申请、证书文件的下载和转换、证书安装配置、http 自动跳转到 https 的安全配置等步骤。在完成这些步骤后,Tomcat 将可以使用 SSL 加密协议来保护数据的安全传输。

    nginx配置https之后,https请求被调转到http问题

    upstream local_tomcat_wechat{  server 127.0.0.1:80 weight=2 fail_timeout=1s; }   server {  listen 443;  server_name www.xxxx.com;  error_log /nginx/log/www.xxxx.com.error.log  warn;  ssl on; ...

    详解NGINX访问https跳转到http的解决方法

    网站架构:用户–https—&gt;nginx代理—http—-&gt;tomcat/nginx+php nginx待遇发给后端的请求是http协议,后端程序跳转获取到的协议是http,返回一个redirect(http header中带Location://www.jb51.net/aaa.html),...

    转至Coda Hale指标库的端口-Golang开发

    go-metrics转到Coda Hale的Metrics库的端口:https://github.com/dropwizard/metrics。 文档:http://godoc.org/github.com/rcrowley/go-metrics。 用法创建和更新指标:c:= metrics.NewCounter(go-metrics转到...

    security-test:Spring安全测试

    打开一个终端,转到TOMCAT_HOME / bin并执行: keytool -genkey -alias tomcat -keyalg RSA -keystore C:\ Temp \ tomcat 询问时,输入密码和证书的详细信息 编辑server.xml并更改以下行: &lt;Connector port=...

    Nginx安装包

    这其中原因是当nginx将请求转发到tomcat2时,服务器当然能做出立即性响应,但要是转到了tomcat1,就会出现一段长达1分多钟的等待响应过程,这显然我们是不能接受的。对此我们需要对ngin配置进行写修改。在这里先介绍...

    智能开发平台 DOROODO

    mysql5+(系统默认使用mysql,你需要将mysql的数据转到oracle,sqlserver里),需要注意的是修改mysql的【max_connections=1000】 2.在mysql中建库doroodo,在库中执行doroodo.sql 3.在eclipse中引入doroodo,修改...

    单点登录源码

    AliOSS & Qiniu & QcloudCOS | 云存储 | [https://www.aliyun.com/product/oss/](https://www.aliyun.com/product/oss/) [http://www.qiniu.com/](http://www.qiniu.com/) [https://www.qcloud.com/product/cos]...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    10.1.1 http错误代码的处理 338 10.1.2 java异常的处理 341 10.2 程序式异常处理 343 10.2.1 在try-catch语句中处理异常 343 10.2.2 使用requestdispatcher来处理异常 346 10.3 小结 349 第11章 开发线程安全...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    10.1.1 http错误代码的处理 338 10.1.2 java异常的处理 341 10.2 程序式异常处理 343 10.2.1 在try-catch语句中处理异常 343 10.2.2 使用requestdispatcher来处理异常 346 10.3 小结 349 第11章 开发线程安全...

Global site tag (gtag.js) - Google Analytics