在不同的端口上托管两个 HTTPS 站点

在不同的端口上托管两个 HTTPS 站点

我正在尝试托管两个 HTTPS 站点。它们具有相同的主机名,但不同的端口和不同的证书。使用这样的配置,Apache 可以启动,但它们都为第一个虚拟主机提供证书。

<VirtualHost *:443>
    ServerName idp.example.org

    SSLCertificateFile /usr/local/apache/conf/ssl/app.crt
    # ...
</VirtualHost>

<VirtualHost *:8443>
    ServerName idp.example.org

    SSLCertificateFile /usr/local/apache/conf/ssl/app.trust.crt
    # ...
</VirtualHost>

我知道 SSL 层通常无法区分主机,唯一的区别是主机名(因为主机名在 HTTP 层),但在这种情况下,端口不同,所以应该没问题。Apache 是不是太傻了?

答案1

Apache 有点傻。它看到主机具有相同的端口ServerName,因此使用它找到的第一个匹配的端口,即使端口不同。如果您ServerName从其中一个或两个端口中删除声明,那么 Apache 将提供单独的证书。

相关内容