【问题标题】:Apache Serving Wrong CertificateApache 提供错误的证书
【发布时间】:2016-11-25 17:00:32
【问题描述】:

我有两个虚拟主机,每个主机都有自己的证书。访问一个虚拟主机时,它会提供错误的证书。来自其他主机的证书在证书定义文件中具有不同的备用名称。

【问题讨论】:

    标签: apache ssl


    【解决方案1】:

    我不确定您是如何配置虚拟主机的。你需要:

    启用基于名称的虚拟主机

    这仅适用于 apache

    通常在apache主配置文件中完成

    NameVirtualHost *:443
    

    创建虚拟主机

    <VirtualHost *:443>
    ServerName www.domain1.com
    # SSl configuration for domain1
    ....
    </VirtualHost>
    
    <VirtualHost *:443>
    ServerName www.domain2.com
    # SSl configuration for domain2
    ....
    </VirtualHost>
    

    请记住,如果您对 2 个虚拟主机使用相同的 IP,则 Apache 将使用 SNI https://en.wikipedia.org/wiki/Server_Name_Indication 并传递它将在 TLS 协商期间连接的主机。

    这意味着您将无法使用简单的方式对其进行测试

    openssl -connect www.domain2.com:443 
    #you will get domain1 certificate
    

    你需要使用

    openssl -connect www.domain2.com:443 --servername www.domain2.com 
    #you will get domain1 certificate
    

    【讨论】:

    • Apache 2.4 说 AH00548:NameVirtualHost 无效,将在下一个版本中删除
    • 是的,但它现在仍在工作,而且问题没有提供 apache 版本
    • 好的,您可以编辑您的答案,提及我提出的内容,我会投票;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-16
    • 1970-01-01
    • 2016-03-01
    • 2015-09-12
    • 2020-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多