gpt4 book ai didi

java - 我可以为每个 servlet 使用不同的 SSL 证书吗?

转载 作者:行者123 更新时间:2023-11-30 11:17:07 24 4
gpt4 key购买 nike

这是我的 GWT Web 应用程序中的 web.xml 配置 fragment

    <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

<servlet>
<servlet-name>firstServlet</servlet-name>
<servlet-class>com.test.server.First</servlet-class>
</servlet>


<servlet>
<servlet-name>secondServlet</servlet-name>
<servlet-class>com.test.server.Second</servlet-class>
</servlet>


<servlet>
<servlet-name>thirdServlet</servlet-name>
<servlet-class>com.test.server.Third</servlet-class>
</servlet>

</web-app>

假设:

  • firstServlet 是来自浏览器的每个查询的入口点
  • secondServlet 是来自 Android 应用程序的每个查询的入口点
  • thirdServlet 是来自 iOS 应用程序的每个查询的入口点

问题:

1 - 我可以在不影响 firstServlet 的情况下为 secondServlet 和 thirdServlet 使用不同的 SSL 证书(可能是自签名的)吗? (这意味着 firstServlet 将接受 http 查询,secondServlet 和 thirdServlet 将只接受 httpS 查询)。

2 - 我该怎么做? (web.xml 等相关 Servlet 所需的语法...)

谢谢,

最佳答案

传统上,单个 IP 上只有一个证书。因此,如果您可以让您的 Web 服务器根据自己的 IP 地址(这也意味着另一个主机名)处理每个 servlet,您就可以做到。示例:您在 servlet1.example.com 上有一个服务器,在 servlet2.example.com 上有另一个服务器,并且两个服务器都有不同的 IP 地址,那么您可以在每个服务器上使用不同的 servlet 和不同的证书,或者您也可以其中一台服务器没有证书。

使用服务器名称指示,同一 IP 地址上可以有多个主机名,每个主机名可以有自己的证书。但是,没有证书就不可能有任何主机名,因为它们的 Web 服务器将在相同的 IP/端口上监听 SSL 连接,并且只有在从客户端获得初始 Hello 后才决定将提供哪个证书。因此,如果您只有几个 IP 地址,但每个 servlet 可以有一个唯一的主机名,您可以使用 SNI 来实现。但是任何应该没有证书的 servlet 都需要从与 https servlet 不同的 IP 地址提供服务。示例:如果您有 servlet1.example.com、servlet2.example.com 都共享相同的 IP 地址,那么如果客户端支持 SNI(所有最新的浏览器都支持,但 IE8 不支持),那么您可以为每个服务器使用不同的证书).但是您不能将 servlet1.example.com 设为 SSL,而 servlet2.example.com 则不能,只要它们共享相同的 IP 地址即可。

不可能拥有特定于 URL 路径的证书,因为该路径仅在 SSL 握手后才知道,例如在已经提供证书之后。示例:无法为 https://www.example.com/servlet1https://www.example.com/servlet2 使用不同的证书,因为它们两者共享相同的主机名,仅 URL 的路径不同。

关于java - 我可以为每个 servlet 使用不同的 SSL 证书吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24537481/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com