我们有一个架构,其中几个 Java 7 Tomcat 应用程序通过 HTTPS 与一个特殊的网络服务(也是一个运行在不同虚拟机上的 Tomcat 应用程序)通信。
更新的基于 SHA-2 的 SSL 证书本身不受许多 Java 7 JRE 的信任。因此,一种解决方案是将 Java 7 客户端应用程序升级到 Java 8,其发行版都支持 SHA-2。但是,由于超出此问题范围的原因,我们的 2 个应用程序非常庞大,无法在短期内升级到 Java 8。
我希望我可以将 2 个 SSL 证书放入 Web 服务的 keystore 中,这样我们将拥有一个旧的 Java 7 友好 SHA-1 证书以及更新的 SHA-2 证书。希望客户端应用程序可以“选择”使用哪个证书,因此,Java 7 应用程序会信任旧证书,而 Java 8 应用程序可能会信任其中一个。
所以我问:当 keystore 中有多个 SSL 证书时,Tomcat 8 的行为如何?它只是返回第一个证书,还是向 HTTPS 客户端提供所有可用证书并允许他们选择使用哪个证书?还是发生了完全不同的事情?
最佳答案
我不知道任何服务器在一个端口上运行多个证书。但是您可以做的是在 server.xml 配置中定义另一个监听端口 8434 的连接器,指向较新的证书技术。您可以使用相同的 keystore ,但必须在连接器配置中添加参数 keyAlias
以定义要使用的正确别名。
关于java - Tomcat 如何处理 keystore 中的多个 SSL 证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28904920/