【问题标题】:Apache 2.4 is messing up with SSL certificatesApache 2.4 搞乱了 SSL 证书
【发布时间】:2017-12-10 15:08:47
【问题描述】:

我有以下带有两个 SSL 证书的虚拟主机配置 对于域 *.example.com 和 *.dev.example.com:

<VirtualHost *:443>
    ServerName site.example.com

    SSLEngine on
    SSLProxyEngine on
    SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
    SSLCertificateFile    /etc/apache2/ssl/certs/example.crt
    SSLCertificateKeyFile /etc/apache2/ssl/private/example.key

    ProxyPreserveHost on
    ProxyPass / http://192.168.1.101:8073/
    ProxyPassReverse / http://192.168.1.101:8073/
</VirtualHost>

<VirtualHost *:443>
    ServerName site.dev.example.com

    SSLEngine on
    SSLProxyEngine on
    SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
    SSLCertificateFile    /etc/apache2/ssl/certs/dev_example.crt
    SSLCertificateKeyFile /etc/apache2/ssl/private/dev_example.key

    ProxyPreserveHost on
    ProxyPass / http://192.168.1.102:8073/
    ProxyPassReverse / http://192.168.1.102:8073/
</VirtualHost>

<VirtualHost *:443>
    ServerAlias *.dev.example.com

    SSLEngine on
    SSLProxyEngine on
    SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
    SSLCertificateFile    /etc/apache2/ssl/certs/dev_example.crt
    SSLCertificateKeyFile /etc/apache2/ssl/private/dev_example.key

    <Proxy balancer://devcluster>
        BalancerMember http://192.168.1.201:8182 
        BalancerMember http://192.168.1.202:8182 
    </Proxy>    
    ProxyPass / balancer://devcluster/
    ProxyPassReverse / balancer://devcluster/
</VirtualHost>

<VirtualHost *:443>
    ServerAlias *.example.com

    SSLEngine on
    SSLProxyEngine on
    SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
    SSLCertificateFile    /etc/apache2/ssl/certs/example.crt
    SSLCertificateKeyFile /etc/apache2/ssl/private/example.key

    <Proxy balancer://mycluster>
        BalancerMember http://192.168.1.203:8182 
        BalancerMember http://192.168.1.204:8182 
    </Proxy>    
    ProxyPass / balancer://mycluster/
    ProxyPassReverse / balancer://mycluster/
</VirtualHost>

访问网站时,我得到以下信息:

  1. site.example.com 具有来自 example.crt 的 *.example.com 的有效证书

  2. site.dev.example.com 具有来自 dev_example.crt 的 *.dev.example.com 的有效证书

  3. anything.dev.example.com 具有来自 dev_example.crt 的 *.dev.example.com 的有效证书

  4. 但是 anything.example.com 从 *.dev.example.com 中指定的 dev_example.crt 获取 *.dev.example.com 的无效证书虚拟主机

看起来虚拟主机“ServerAlias *.example.com”正在选择虚拟主机“ServerAlias *.dev.example.com”中指定的证书

是 Apache 故障还是我的配置有问题?

【问题讨论】:

    标签: apache apache2 apache2.4


    【解决方案1】:

    您需要为每个 SSL 虚拟主机选择一个唯一的 ServerName,即使您希望 ServerAlias 代表您需要的内容。 mod_ssl 使用服务器名称作为 SNI 的键。

    【讨论】:

    • 你仍然可以使用服务器别名,你只是不能 Omi ServerName 或有 dup 的
    猜你喜欢
    • 2016-03-01
    • 2018-08-15
    • 2020-10-14
    • 2015-05-15
    • 2013-10-12
    • 2017-03-05
    • 1970-01-01
    • 1970-01-01
    • 2016-04-13
    相关资源
    最近更新 更多