两个URL指向同一个Tomcat实例,其中一个重定向到另一个
我的设置是这样的(尽管可能很不幸) 两个域指向同一服务器:两个URL指向同一个Tomcat实例,其中一个重定向到另一个,tomcat,ssl,redirect,Tomcat,Ssl,Redirect,我的设置是这样的(尽管可能很不幸) 两个域指向同一服务器: app.foo.com app.bar.com 两个Tomcat实例在此服务器上运行,一个在端口80上,另一个在端口443上 问题在于端口443上的安全应用程序。我为app.foo.com安装了一个SSL证书,所以它可以正常工作。问题是,当我转到时,我会从浏览器中收到“不安全”的大警告(正如预期的那样)。Tomcat配置文件中有没有办法让流量重定向到?我假设您知道如何在Tomcat中重定向到其他主机,例如读取主机头并发送指向其他url的
app.foo.com
app.bar.com 两个Tomcat实例在此服务器上运行,一个在端口80上,另一个在端口443上
问题在于端口443上的安全应用程序。我为app.foo.com安装了一个SSL证书,所以它可以正常工作。问题是,当我转到时,我会从浏览器中收到“不安全”的大警告(正如预期的那样)。Tomcat配置文件中有没有办法让流量重定向到?我假设您知道如何在Tomcat中重定向到其他主机,例如读取主机头并发送指向其他url的301或302响应。但我认为真正的问题是,如果可以不显示无效SSL警告:这是不可能的,因为只有在用户手动接受无效证书的情况下,对的初始请求才会到达您的服务器。在请求时,没有客户端会连接到端口80。。。他们会一直联系443端口。这意味着如果
foo.com
托管在端口443上,您将始终获得(a)foo.com
的证书,以及(b)当使用HTTPS时,可能是foo.com
应用程序
这两个应用程序使用不同的端口是否有特殊原因?为何不:
- -名为foo的应用程序
- -名为bar的应用程序
- -名为foo的应用程序
- -名为bar的应用程序
foo.com
始终只为appfoo
和bar.com
始终为appbar
(两者都在上下文ROOT
aka//code>)提供服务,那么您需要选择以下策略之一:
策略1:更智能的证书
获取一份证书,该证书上既有www.foo.com
又有www.bar.com
作为s
这将允许客户端连接而无需投诉。客户端将主机名发送到服务器,Tomcat将根据主机名选择适当的应用程序
策略2:更智能的配置
使用基于名称的证书选择配置基于名称的虚拟主机(您肯定已经有了)
配置两个独立的虚拟主机(conf/server.xml
中的
)
foo.com
bar.com
配置基于虚拟服务器的证书(至少需要Tomcat 8.5)
将
用作
的子元素
foo.com
和bar.com
什么样的?如果您的Tomcat实例不在Apache这样的web服务器后面,我认为这可能是最重要的。