【问题标题】:Tomcat and Apache Webserver using SSL on one machine在一台机器上使用 SSL 的 Tomcat 和 Apache Webserver
【发布时间】:2013-10-04 11:14:20
【问题描述】:

我已在 ubuntu 12.04 LTS 系统上安装并运行 tomcat,并使用端口 443 进行 https 请求(已安装 GeoTrust 证书)。

在同一台机器上,apache2 响应端口 80 上的请求。

现在我的任务是使用 SSL 保护在 apache2 上运行的 webapps (php),但使用不同的服务器证书。

这可能吗? - 我的假设是“不”,因为我不能让两台服务器在同一个端口上监听,但我不太确定,到目前为止还没有找到任何有用的信息。

任何帮助将不胜感激..

【问题讨论】:

    标签: apache tomcat ssl


    【解决方案1】:

    如今,您仍然难以在单个接口/端口组合(例如 0.0.0.0:443)上提供多个证书。如果您想为 HTTPS 使用两个单独的端口,那没问题。如果您想绑定到不同的接口(例如 1.2.3.4:443 和 4.3.2.1:443),那没问题。如果您希望它们都在同一个接口/端口上,则必须依赖服务器名称指示,您的 Web 服务器版本和/或客户端可能支持也可能不支持。

    如果你想要不同的证书,你可能也想要不同的主机名,所以也许你可以在机器上配置第二个接口。请注意,您不需要在机器上拥有多个 NIC 来启用不同的接口:您的操作系统应该能够创建具有不同 IP 地址的另一个接口并且仍然共享 NIC。然后,您只需将 DNS 设置为将每个主机名指向不同的 IP 地址,并确保将每个 SSL 虚拟主机绑定到正确的 IP 地址(而不是使用 0.0.0.0* 作为主机名)。

    老实说,SNI 是最容易做的事情:只需按照您“期望”它工作的方式使用启用 SSL(具有不同证书)的 VirtualHosts,然后查看服务器是否在没有投诉的情况下启动。如果是这样,您需要测试您的客户,看看它是否适合您的受众。对于 SNI 场景,我假设 Apache httpd 将处理所有 SSL 流量,并且您会使用 mod_proxy_*mod_jk 之类的东西来代理到 Tomcat。

    对于拆分 IP 场景,您可以做任何您想做的事情:在 Tomcat 中终止 SSL 或对所有内容使用 httpd 并将动态内容代理到 Tomcat。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-25
      • 2012-02-11
      • 2012-06-10
      • 2012-12-23
      • 2016-01-16
      • 1970-01-01
      相关资源
      最近更新 更多