我有一台服务器使用Tomcat 7托管多个网站,例如
使用tomcat的虚拟主机功能,因此它们每个都可能属于不同的webapps文件夹。
我们现在正在尝试为每个网站实施Https。所以基本上我们有2个通配符证书,* .abc.com和* .def.com
我一直在寻找设置方法,我找到了:
第二个示例最接近我的需要,但问题是我的所有虚拟主机都具有相同的IP地址,唯一的区别在于域名本身,更糟糕的是,大多数虚拟主机甚至有几个不同的别名(例如:我的d.def.com可以将e.ghi.com作为其别名之一。)
所以我的问题是,无论如何我可以为我的所有虚拟主机设置多个SSL证书吗?
答案 0 :(得分:5)
我担心用tomcat来满足你的所有要求是不可能的:
Tomcat SSL配置在<Connector>
config.xml
元素中定义
<Connector
protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="${user.home}/.keystore" keystorePass="changeit"
clientAuth="false" sslProtocol="TLS"/>
每个连接器都需要port
属性。请参阅HTTP Connector文档中的定义
此连接器将在其上创建服务器套接字并等待传入连接的TCP端口号。 您的操作系统只允许一个服务器应用程序侦听特定IP地址上的特定端口号。
因此,您无法使用相同的端口定义两个连接器,因此无法配置不同的SSL证书。
多个IP :address
属性配置将用于侦听指定端口的地址。使用SSL证书为每个主域设置IP,并为其配置Connector
不同的端口:{。1}用于* .abc.com,443
用于* .def.com,依此类推
SSL代理:在tomcat前部署Apache或Nginx等代理服务器。代理仅处理SSL协商和虚拟主机。所有流量都以纯HTTP重定向到Tomcat。
就像使用Apache mod_ssl +和tomcat连接器mod_JK的示例一样,您所请求的配置很简单
444