Apache 和 SSL 背后的 Tomcat

2024-01-12

我到处寻找但找不到针对以下情况的明确解决方案:

我们有一个 Web 应用程序(Grails + Spring Security),在 apache 后面的 tomcat 中运行。Part应用程序的一部分需要在 https 上运行,因此使用 Spring Security Channel Security,每当您导航到应用程序的安全部分时,Spring 都会将您重定向到带有 302 状态代码的 https。

现在,tomcat 已设置为了解 https 和证书,因此它知道如何处理 ssl。事实上,当通过直接访问 url 和端口来直接访问 tomcat 来绕过 apache 时,一切都 100% 正常。

现在把apache放在tomcat前面的时候问题就来了。我们目前拥有的 apache 配置对于应用程序的非安全部分工作得很好。我们使用 mod_jk 来代理 apache 和 tomcat。

然而,一旦您尝试进入应用程序的安全部分,Spring 就会重定向您,它会命中

<VirtualHost _default_:443> ... </VirtualHost>

apache 配置的一部分...这就是问题开始的地方。

根据我的阅读,apache 可以通过 mod_jk 将 ssl 处理传递给 tomcat。但我们似乎无法获得正确的配置。由于 tomcat 已经为 ssl 设置了,它知道证书在哪里,并且设置了 Spring Security,因此我们希望 tomcat 处理所有 ssl,而 apache 只是将其典当给 tomcat。

这有可能吗,还是我错过了什么?有人对如何设置有明确的说明吗?任何帮助将不胜感激。

我们正在使用 Apache 2.2 和 tomat 7.0.27

Thanks


您不能仅将 SSL/TLS 流量从 Apache 中继到 Tomcat。您的 SSL 连接以 Apache 结束,然后您应该将流量反向代理到 Tomcat(SSL 在这种情况下很少有用),或者让客户端直接连接到 Tomcat 并让它处理 SSL 连接。

我不确定你在哪里读到过mod_jk可以将 SSL 连接本身传递给 Tomcat。它需要直接中继套接字,因此绕过了所使用的 AJP 协议mod_jk(顺便一提mod_proxy_ajp是新的方式,甚至mod_proxy_http).

如果您希望 Tomcat 处理 SSL 请求,我不确定为什么您希望 Apache 位于 Tomcat 前面。如果这与端口号或其他内容有关,请使用防火墙规则将端口 443 转发到 Tomcat 端口。

此外,请注意这些从 HTTP 到 HTTPS 的自动重定向的完成方式:它们仅在发出初始 HTTP 请求后发生 https://stackoverflow.com/a/9105894/372643.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Apache 和 SSL 背后的 Tomcat 的相关文章

  • Spring中无法使用Tomcat提供的JNDI DataSource?

    我想在基于 Spring 的应用程序中使用 Tomcat 提供的 JNDI 数据源 我使用 Tomcat 7 池 尝试按照描述进行配置here https stackoverflow com questions 9183321 how to
  • Spring Security 子线程上下文

    所以我正在使用 Spring Security 开发这个 Spring MVC 应用程序 在某些情况下 我遇到了性能问题 我的控制器需要很长时间才能响应 这是由于一种处理方法可以根据某些用户输入来处理大量数据 现在 我已经与我的团队一起对该
  • Tomcat 上的 Spring Security SAML 元数据 URL

    我正在开发一个基于 java 的 Web 应用程序 在 Tomcat 服务器上使用 Spring Security SAML 实现 SSO 该应用程序将扮演服务提供商角色 SP 用于检索此 SP 元数据的默认 Spring URL 是 ht
  • Grails:在 gsp 中显示创建的图像

    我对 Grails 很陌生 所以这个问题可能有一个非常简单的答案 我正在尝试在 gsp 中显示动态创建的图像 图像不存储在数据库中 它是在控制器中动态创建的 我本质上拥有的是一个 gsp 它有一个接受一组用户输入的表单 requestGra
  • SSL 与 WinHTTP

    我用 winhttp 创建了一个简单的 Web 服务器 它只有一个客户端 一个网站 在我启用 SSL 之前它工作得很好 我没有收到任何错误 并且一切似乎都正常 但网站在尝试连接时收到错误代码 104 并且我在服务器中没有看到任何活动 该网站
  • 如何处理GORM异常

    我正在尝试对 Hibernate 引发的乐观锁类 型异常实现异常处理 但我遇到了一个奇怪的问题 看来我无法捕获任何 Gorm 异常 例如 我的服务中有以下代码 try User user User get 1 Thread sleep 10
  • Spring boot安全配置 - 必须指定authenticationManager

    这是我的主要应用程序配置 SpringBootApplication public class Application public static void main String args new SpringApplicationBui
  • 根据 apache 环境变量,有条件地要求 HTTP 身份验证

    我的托管有我的站点的多个部署 开发 阶段 生产 当且仅当它们设置的环境变量等于 dev 时 如何在我的 htaccess 文件中添加 HTTP Auth 标头 这意味着他们设置了一个名为 SITE ENVIRONMENT 的变量 该变量可以
  • “child pid 10708 exit signal Segmentation failure (11)”错误的根本原因是什么?

    我越来越child pid 10708 exit signal Segmentation fault 11 错误 其根本原因是什么以及如何解决 php ini 内存与此有关吗 我正在使用带有 php 的 apache2 服务器 提前致谢 完
  • 为什么我会遇到握手失败 (Java SSL)

    我正在通过 HTTPS 连接到 Web 服务 我已经完成了我认为使其正常工作所需的所有操作 但最终我握手失败了 我发现 作为一个新用户 由于 垃圾邮件防护 我无法发布超过 2 个链接 非常感谢 stackoverflow 无论如何 这里有一
  • PHP 使用 LetsEncrypt 验证失败

    尝试读取流时遇到问题 result file get contents url false stream context create http gt timeout gt float this gt options timeout SSL
  • 将 @AuthenticationPrincipal 与 JwtAuthenticationToken 一起使用以使用自己的用户类

    我正在使用 Spring Boot 2 2 5 和 Spring Security 5 2 2spring security oauth2 resource server and spring security oauth2 jose依赖关
  • 使用 Azure SDK 上传 Azure Web 应用程序的 SSL 证书文件 (.pfx)

    如何使用 Azure SDK 上传 Azure 应用服务的 pfx 文件 SSL 证书 里面有一个命令Azure CLI 证书 创建或更新 https learn microsoft com en us rest api appservic
  • 与 Postgres 的 TCP 连接安全吗?需要 SSL 吗?

    早上好 我正在浏览 Postgresql 配置文件 最近注意到有一个ssl选项 我想知道什么时候需要这样做 假设您有一个应用程序服务器和一个数据库服务器 不在专用网络内运行 如果用户尝试登录 如果未启用 SSL 应用程序服务器在查找用户密码
  • 如何在 Tomcat 6 中合理配置安全策略

    我使用的是为 Ubuntu Karmic 打包的 Tomcat 6 0 24 Ubuntu 的 Tomcat 软件包的默认安全策略相当严格 但看起来很简单 在 var lib tomcat6 conf policy d 有多种建立默认策略的
  • php 在内容前插入十六进制字符数

    我正在将网站移动到新服务器 旧服务器有 php 5 3 2 新服务器有 php 5 5 9 Centos httpd Apache 2 2 26 我已经复制了文件 它工作正常 除了唯一奇怪的事情 一些奇怪的十六进制数字被插入到页面内容之前
  • 如何修复 Apache mod_wsgi 的 Python 版本不匹配问题?

    我收到此错误 Thu Jul 12 14 31 36 2012 error python init Python version mismatch expected 2 6 7 found 2 6 8 当尝试启动 Apache 服务器时 在
  • 初始堆大小无效。无法创建Java虚拟机

    我遇到了下一个问题 我尝试通过startup bat手动启动Tomcat 但似乎没有显示任何结果 然后我尝试运行shutdown bat 控制台显示如下 D apache tomcat 7 0 35 bin gt startup bat U
  • Apache 服务器上的服务器端 Javascript

    我们打算使用Apache https httpd apache org 用于 Web 开发的服务器 对于服务器端脚本 我们希望使用服务器端 javascript 要使服务器端 javascript 在 Apache 服务器上工作需要什么 S
  • pandas to_sql sqlalchemy 与 secure_transport 的连接

    我正在尝试将数据发送到具有 require secure transport ON 的服务器上的 mysql 数据库 当我尝试使用以下代码连接到它时 import pandas as pd import pymysql from sqlal

随机推荐