如何配置 tomcat 在同一个应用程序中同时使用 http 和 https?

如何配置 tomcat 在同一个应用程序中同时使用 http 和 https?

我知道 URL 模式可以用来处理一些 HTTP 下的请求和另一些 HTTPS 下的请求。

让我们想象一个具有两个 servlet 的 Web 应用程序,每个 servlet 都使用不同的 URL 模式访问(例如 .../myapp/servlet1 和 .../myapp/servlet2),我怎样才能让第一个 servlet 通过 HTTP 处理,而让第二个 servlet 通过 HTTPS 处理?

你能提供一个配置示例吗?

谢谢!

答案1

这里的主要思想是您要指定哪些页面正在使用 SSL

在 Tomcat 中使用 SSL 需要 3 个主要步骤:

  1. 首先需要创建 SSL 证书。例如,您可以使用 JDK 提供的工具:keytool。例如:keytool -genkey -alias tomcat -keyalg RSA -keystore keystore.ssl。系统将要求您输入密码,填写完所有所需信息后,按 RETURN 以使用相同的密码。将创建的文件移动到 CATALINA_HOME 下。
  2. 然后,您需要在 tomcat 中启用 SSL 连接器。为此,conf/server.xml例如:http://fpaste.org/w3yu/(第一部分)
  3. 您需要在应用程序中指定哪些 URL 需要使用 SSL。我们以管理器应用程序为例。在 之前的 WEB-INF/web.xml 中</security-constraint>,添加以下内容:与上述链接相同,但请参阅第 2 节。

我知道这很简短,但这应该可以给你提供指导,让你知道该怎么做:)

答案2

我建议你将 Apache 设置为反向代理,并让它处理前端。你可以配置两个虚拟主机(一个用于 http,一个用于 https),分别连接到相应的 Tomcat 后端 servlet。

你可以看看这个问题以获取配置示例。您想做几乎完全相同的事情。

相关内容