我知道tomcat可以通过设置侦听不同IP的多个连接器来处理多个SSL证书,但是可以在同一IP上进行设置吗?
情况是,我们在单个tomcat实例中运行了多个Web应用程序。我们的服务器只有1个静态IP。Tomcat设置为具有虚拟服务器,因此根据域的不同,它提供不同的应用程序。但是,如果我们希望在其中一个应用程序中使用更多的SSL,我预计我们可能会遇到麻烦。
有人在这方面有更多经验吗?
为了能够在同一IP地址和端口上使用多个证书,您需要服务器名称指示支持。不幸的是,这是在Java 7中仅在客户端引入的。
(在客户端上仍存在SNI支持的问题,最明显的原因是Win XP,Java 6及更低版本的IE的任何版本以及某些移动浏览器都缺乏对它的支持。)
一种解决方法是使用支持多个主机名的单个证书。执行此操作的首选方法是拥有带有多个“使用者备用名称”(SAN)条目的证书。否则,如果该名字具有图案,通配符证书可以是适当的(例如*.example.com为www.example.com和secure.example.com)。
*.example.com
www.example.com
secure.example.com
Apache Httpd支持SNI,因此您可以通过VirtualHost为要提供服务的每个主机名使用不同的s并为每个主机使用指向不同Tomcat配置的反向代理来解决问题。
VirtualHost