- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道 Tomcat 提供 SNI 和相互身份验证,但是否可以只为选定的应用程序/路径启用 MA? IE。假设我的服务器上有以下应用程序/端点:
/app1
/app2/human
/app2/robot
其中 /app2/human 被人类使用,而 /app2/robot 被机器人、计算机和其他设备使用(例如/app2/human 提供 HTML/app2/robot 提供 JSON)。现在,我能否以某种方式配置 Tomcat 以接受通过 SSL 连接到 /app1 和 /app2/human 而无需 MA 以及仅连接到 /app2/robot客户是否出示了有效证书?
当然,我想在不为每个应用程序配置单独的端口/连接器的情况下这样做,这很容易。
提前致谢。
最佳答案
Tomcat 不为不同的路径提供选择性相互认证,但如果您只需要在 webapp 级别(而不是在特定的 web 应用程序内部)应用这种选择性相互认证,您可能是能够拥有一个单独的<Connector>
用于特殊的 Web 应用程序。这需要一个单独的 <Service>
因此 <Host>
,当然还有不同的端口号(除非您碰巧有一个单独的网络接口(interface),您可以使用它来保留端口)。
我还没有尝试过,但我认为理论上可以配置 SNI+client-auth,以便特定主机名具有不同的客户端身份验证要求,但 Tomcat 中没有这样的代码目前支持。
Tomcat 可以配置为使用不同的信任库和不同的 certificateVerification
设置每个主机名,但它不允许您更改它每个路径。
另一种选择是将 Tomcat 配置为“想要”(甚至需要)客户端证书,然后使用 Filter
自行执行检查. Filter
s 可以在每个路径的基础上应用,而且您的应用程序变得更加可移植,因为您不依赖于某些可能是 Tomcat 特定的功能。
看看这个线程,了解几年前我是如何做到这一点的。有(最终)一些示例代码以及大量关于我如何获得所有信息并将其组合在一起的引用资料:http://markmail.org/thread/vxwwli5nzt4itfr2
关于Tomcat + SNI + 相互认证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38394065/
我正在为驻留在同一台服务器上的不同域设置多个不同的 SSL 证书(因此共享相同的 IP 地址)。 与 Qualys SSL Test我发现有些客户端(即 BingBot as of december
我们想在连接到各种外部端点 (SOAP/REST) 的 PHP 客户端中启用 SNI(服务器名称指示)。其中一些端点支持 SNI 作为服务器,但有些不支持。在所有传出请求上启用 SNI 会导致不支持
浏览器是当前的 Chrome 或 FF。在服务器 apache 2.2ish 上。 我启用了许多 SNI 站点 - 虚拟主机 *.443 等。所有单独的配置文件。一切正常。 如果我在浏览器中导航到这些
AWS 网络负载均衡器 support TLS termination .这意味着可以在 AWS Certificate Manager 中创建证书并将其安装到 NLB,然后使用 TLS 加密的 TC
我正在尝试验证 TLS 客户端是否检查服务器名称指示 (SNI)。 我首先尝试使用 openssl 重现这些步骤。 我试图用这个 openssl 命令连接到谷歌 openssl version ope
我知道 Tomcat 提供 SNI 和相互身份验证,但是否可以只为选定的应用程序/路径启用 MA? IE。假设我的服务器上有以下应用程序/端点: /app1 /app2/human /app2/rob
如何使用 C 或 C++ 在 OpenSSL 上实现服务器名称指示 (SNI)? 是否有任何现实世界的例子可用? 最佳答案 在客户端,您使用 SSL_set_tlsext_host_name(ssl,
在我们的系统中,虚拟主机配置存储在redis中。在连接设置期间,当收到 SNI 时,我们想查询 redis 以获取用于 TLS 连接的正确证书和 key 对,并创建一个附加的新 Context 实例。
我在使用 Apache HttpClient (4.5.2) 的 Java 8 上遇到此错误: javax.net.ssl.SSLProtocolException:握手警报:unrecognized
我有一个 Web 服务 (asmx) API,它是由我管理的另一位开发人员用 .NET 3.5 编写的。我们最近从 Server 2008R2 迁移到 Server 2012R2,我决定使用 SNI
我们托管了数十万个域。我们希望在单个 I.P. 上为所有这些提供 SSL/TLS。显然,SNI允许我们这样做。但是,这表明我们的 SSL 终止服务器上实际上有成千上万个证书。 对于可以安装在 SNI
有没有办法在现代浏览器中暂时禁用 SNI? 例如测试老客户的网站可用性。 (自从 POODLE 以来,人们应该担心他们吗?) 最佳答案 可能测试老客户可用性的最佳方法是实际试用老客户。 Microso
我在这里拉扯我的头发。像 wix.com 这样的网站, squarespace.com ...ETC;可以即时生成网站,并且仍然在数百万自定义域中的每一个上使用 SSL。 我尝试做同样的事情,但我不知
我可以找到有关 SNI 的各种信息(请参阅 Wikipedia ),但我找不到有关浏览器实际支持的任何统计信息。 我能找到的最好的结果是它应该可以在带有 SP3 的 Windows XP 上运行。 有
Java 7 带来了 client support for SNI .是否有已知的 SNI 服务器角色的开源实现? Java 提供“透明支持”TLS 连接(包括握手),但我需要解耦握手过程,以便我可以
如何使用 C 或 C++ 在 OpenSSL 上实现服务器名称指示 (SNI)? 是否有任何现实世界的例子可用? 最佳答案 在客户端,您使用 SSL_set_tlsext_host_name(ssl,
我遇到了一个我不理解的 Java SNI SSL 行为。在 Java 中使用 SNI 时,我希望 Google 不会为无效的主机名提供任何证书,但它确实提供了。 KeyStore keystore =
我有一个站点,其中有由 letsencrypt 创建的 ssl,但是没有 sni ssl 存在问题。它配置好吗? https://www.ssllabs.com/ssltest/analyze.htm
Java 6 可以使用 TLS + SNI 吗? TLS 与 java 6 配合得很好,但似乎不支持 SNI。 Java 7 及更高版本可以正常工作。但我坚持使用 Java 6。 Java 6 adv
我已经使用 SNI 在我的网站上实现了 SSL。现在我知道旧浏览器不支持 SNI 功能。我要问的是,当用户尝试使用不支持 SNI 的浏览器访问我的网站时,是否可以将用户重定向到其他登录页面。 请建议我
我是一名优秀的程序员,十分优秀!