【问题标题】:Using multiple SSL certificates in single tomcat instance在单个 tomcat 实例中使用多个 SSL 证书
【发布时间】:2012-04-27 17:34:19
【问题描述】:

我知道tomcat可以通过设置多个连接器监听不同的IP来处理多个SSL证书,但是可以在同一个IP上设置它吗?

情况是我们有多个 web 应用程序在一个 tomcat 实例中运行。我们的服务器只有 1 个静态 IP。 Tomcat 设置为具有虚拟服务器,因此根据域它服务于不同的应用程序。但是,如果我们希望在其中一个以上的应用程序中使用 SSL,我预测我们可能会遇到麻烦。

有没有人在这个领域有更多的经验?

【问题讨论】:

  • 我相信您可以在一个证书中列出多个域。
  • 您是接受 SSL 连接还是使用您自己的证书继续连接?
  • @AndrewFinnell - ...不知道你的意思。您是在谈论多域证书吗?不是一种选择,我们需要单独向客户收取 SSL 证书的费用,并且每次我们想将域添加到列表中时都无法重新生成新证书。
  • @PaddyCarroll - 我们接受 SSL 连接。永远不要使用自签名的。
  • @nico 啊,你是服务提供商。我没有推断出来。

标签: tomcat ssl


【解决方案1】:

我不确定“SNI”是否真的相关。

但在您的情况下,典型的解决方案是所谓的 ssloffloading 或 ssl Termination:即将您的 tomcat 放在 apache 后面,该 apache 配置为在同一个 ip 上使用多个虚拟主机/域名。您可以为 apache 中的每个 vhost 配置使用自己的 SSL 证书。

这里有此主题的分步指南:

http://milestonenext.blogspot.de/2012/09/ssl-offloading-with-modjk-part-1.html

【讨论】:

    【解决方案2】:

    我不相信你会用 1 个 IP 地址逃脱,但你可以使用多个端口

    <Connector
           port="9001" maxThreads="200"
           scheme="https" secure="true" SSLEnabled="true"
           keystoreFile="${user.home}/.keystore" keystorePass="changeit"
           clientAuth="false" sslProtocol="TLS"/>
    -->
    

    然后 https:9001//myurl

    为您的连接 我个人会把它放在一个 apache httpd 反向代理服务器上,因为它在正确配置时为您提供了更大的灵活性和一点安全性

    【讨论】:

      【解决方案3】:

      为了能够在同一个 IP 地址和端口上使用多个证书,您需要服务器名称指示支持。不幸的是,this was introduced in Java 7, only on the client side

      (客户端的 SNI 支持仍然存在问题,最明显的原因是 Win XP、Java 6 及更低版本以及某些移动浏览器上的任何版本的 IE 都缺乏支持。)

      解决方法是使用支持多个主机名的单个证书。执行此操作的首选方法是拥有一个包含多个主题备用名称 (SAN) 条目的证书。否则,如果名称有模式,通配符证书可能是合适的(例如,*.example.com 代表 www.example.comsecure.example.com)。

      Apache Httpd has support for SNI,因此您可以通过对要服务的每个主机名使用不同的 VirtualHosts 并为每个主机使用不同 Tomcat 配置的反向代理来解决您的问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-04-21
        • 2017-03-18
        • 1970-01-01
        • 2017-07-28
        • 2017-09-10
        • 1970-01-01
        • 2016-09-13
        相关资源
        最近更新 更多