Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
两个URL指向同一个Tomcat实例,其中一个重定向到另一个_Tomcat_Ssl_Redirect - Fatal编程技术网

两个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的应用程序
设置上述URL是很简单的,但也包括以下内容:

  • -名为foo的应用程序
  • -名为bar的应用程序
如果您想让
foo.com
始终只为app
foo
bar.com
始终为app
bar
(两者都在上下文
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服务器后面,我认为这可能是最重要的。