`

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协议。 首先,为了实现HTTPS,我们需要一个数字证书,这个证书用于验证服务器的身份并加密通信。在Java开发环境中,我们可以使用JDK自带的`keytool`...

    tomcat http 转 https

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

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

    ### Spring Boot 内置 Tomcat 配置 HTTPS 及 HTTP 自动转向 HTTPS #### 一、Spring Boot 内置 Tomcat 配置 HTTPS 访问 为了实现 Spring Boot 应用程序通过内置 Tomcat 服务器支持 HTTPS 访问,我们需要进行以下几...

    tomcat全套配置https协议

    本教程将详细讲解如何配置Tomcat以支持HTTPS协议,包括生成证书、配置端口以及强制所有HTTP请求转换为HTTPS。 首先,我们需要了解HTTPS的核心概念:SSL/TLS证书。这个证书由权威的证书颁发机构(CA)签发,包含公钥...

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

    ### Tomcat更换SSL证书方法(JKS与PFX转换) 在IT行业中,为了保障网络通信的安全性,使用SSL证书加密已经成为了一种标准做法。对于使用Tomcat作为应用服务器的企业或个人来说,有时候会遇到需要更换SSL证书的情况,...

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

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

    nginx+tomcat8 ssl使用https访问

    首先,Nginx通常作为前端服务器,负责处理网络请求,包括SSL终止,即接收来自客户端的HTTPS请求并将其转换为HTTP请求转发给后端的Tomcat服务器。这样做可以减轻Tomcat的负载,因为它不再需要处理加密和解密的工作。 ...

    tomcat6.0.35_tomcat_

    3. ** Coyote**:Coyote是Tomcat的HTTP/1.1协议处理器,它处理客户端的HTTP请求并返回响应。 4. **Juli**:Tomcat的内置日志系统,提供了更灵活的日志配置和控制。 5. **Shared Libraries**:允许在多个Web应用...

    Tomcat服务器配置https双向认证

    ### Tomcat服务器配置HTTPS双向认证详解 #### 一、HTTPS原理及TLS/SSL特性 **1. HTTP、HTTPS、SSL、TLS的关系** - **HTTP**(HyperText Transfer Protocol): 是一种应用层协议,用于从Web服务器传输超文本到本地...

    tomcat7源码下载

    2. coyote:Coyote是Tomcat的HTTP/HTTPS连接器,负责接收和发送网络请求。 3. common:这个模块包含了Tomcat中可被所有其他模块共享的组件和服务,如Logging、Naming和JMX支持。 4. jasper:Jasper是Tomcat的JSP...

    tomcat7.0基于https证书手册 1

    首先,我们来看【标题】"tomcat7.0基于https证书手册 1",这表明我们要讨论的是在Tomcat 7.0版本中设置HTTPS连接,需要用到证书来实现SSL/TLS加密。 【描述】中提到了几个关键步骤: 1. **生成私钥**:这是创建数字...

    dns+nginx+tomcat实现https

    ### DNS、Nginx与Tomcat实现HTTPS访问详解 #### 一、概述 在现代互联网应用中,HTTPS已经成为标配,不仅能够提供数据加密传输的安全保障,还能提升用户体验和搜索引擎优化等多方面的好处。本文将详细介绍如何通过...

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

    HTTPS是HTTP协议的安全版本,通过使用SSL/TLS协议提供数据加密、服务器身份验证和消息完整性检查,确保了网络通信的安全性。 "增加https证书及配置"意味着这个Tomcat实例将被配置为支持HTTPS连接,这在处理敏感用户...

    Tomcat9使用免费的Https证书加密网站的方法

    - 这样,当用户尝试访问HTTP端口80时,Tomcat会自动将请求重定向到HTTPS的443端口。 完成以上步骤后,重启Tomcat服务,你的网站就会使用免费的HTTPS证书进行加密通信了。浏览器地址栏将显示锁形图标,表明网站是...

    tomcat7.0下载

    3. **连接器(Connector)**:Tomcat提供了与不同网络协议(如HTTP/HTTPS)交互的组件,使得应用可以通过网络进行通信。 4. **部署工具**:Tomcat提供自动部署和热部署功能,开发者只需将应用的WAR文件放入特定目录...

    (转)ab-tomcat压力测试工具

    【标题】:“(转)ab-tomcat压力测试工具” 【描述】:这篇博客文章并未提供具体的描述,但根据标题可以推断,它可能涉及一个名为"ab"的压力测试工具在Tomcat应用服务器上的使用。"ab"是Apache HTTP服务器项目的一...

    tomcat-9.2.3.zip

    Tomcat支持多种连接器,包括HTTP/1.1和AJP,可以与其他Web服务器如Apache HTTP Server进行集成。此外,Tomcat 9.2.3支持HTTP/2协议,提高了通信效率。 九、WebSocket支持 Tomcat 9内建了对WebSocket API的支持,...

    tomcat8.5解压版

    Tomcat使用Coyote连接器处理HTTP/HTTPS连接。默认使用NIO(非阻塞I/O)模型,但也可配置为BIO(阻塞I/O)或APR(Apache Portable Runtime,利用操作系统级别的效率提升)。 10. **监控与管理** 通过访问...

    《深入剖析 Tomcat》PDF版本下载.txt

    此外,Tomcat还支持HTTP、HTTPS等多种协议,并能够作为独立的应用服务器运行,也可以与Apache等其他Web服务器配合使用。 ### 二、Tomcat架构分析 #### 2.1 架构概述 Tomcat采用了一种基于组件的模块化架构设计,...

Global site tag (gtag.js) - Google Analytics