【问题标题】:Apache - Multiple SSL IssueApache - 多个 SSL 问题
【发布时间】:2012-02-01 16:24:48
【问题描述】:

我在一个名为 virtualhosts.conf 的文件中定义了 2 个站点,在 httpd.conf 的末尾加载。

它们都有以下格式:

<VirtualHost IP:80>
  DocumentRoot D:/Site/A/
  ...
</VirtualHost>

<VirtualHost IP:443>
  DocumentRoot D:/Site/A/
  ...
</VirtualHost>

<VirtualHost IP__2:80>
  DocumentRoot D:/Site/B/
  ...
</VirtualHost>

<VirtualHost IP__2:443>
  DocumentRoot D:/Site/B/
  ...
</VirtualHost>

如果我使用上述配置加载https://sitea.com,它加载得很好。如果我用上面的配置加载https://siteb.com,它会中断,说siteb将自己标识为sitea。如果我翻转条目的顺序:

<VirtualHost IP__2:80>
  DocumentRoot D:/Site/B/
  ...
</VirtualHost>

<VirtualHost IP__2:443>
  DocumentRoot D:/Site/B/
  ...
</VirtualHost>

<VirtualHost IP:80>
  DocumentRoot D:/Site/A/
  ...
</VirtualHost>

<VirtualHost IP:443>
  DocumentRoot D:/Site/A/
  ...
</VirtualHost>

现在,siteb 可以正常加载,但 sitea 会抛出一个错误,表明它会将自己标识为 siteb。

发生了什么事? Apache 似乎默认为文件中的“顶部”条目,即使两者似乎都是有效的,对于它们的域来说,如果它们是第一个。

编辑:我的 httpd.conf 顶部:

Listen 80
Listen 443

NameVirtualHost IP.50:80
NameVirtualHost IP.50:443

NameVirtualHost IP.51:80
NameVirtualHost IP.51:443

NameVirtualHost IP.52:80
NameVirtualHost IP.52:443

NameVirtualHost IP.53:80
NameVirtualHost IP.53:443

NameVirtualHost IP.54:80
NameVirtualHost IP.54:443

NameVirtualHost IP.55:80
NameVirtualHost IP.55:443

NameVirtualHost IP.56:80
NameVirtualHost IP.56:443

【问题讨论】:

    标签: apache ssl httpd.conf


    【解决方案1】:

    SSL 是在 HTTP 请求之前建立的,服务器在收到请求时不知道要出示谁的证书。除了为每个安全域设置专用 IP 外,此问题没有通用解决方案。顺便说一句,您的问题在 StackOverflow 上是题外话。

    【讨论】:

    • 不幸的是,我们确实为每个域都有一个专用 IP,我将编辑我的问题并列出一个示例。很抱歉这有点偏离主题。
    • 我的两个 VirtualHosts 中都没有 ServerName 条目,将其添加到修复中。解决了,如果一个模组想要删除这个。
    猜你喜欢
    • 2015-09-23
    • 2015-03-11
    • 2011-08-29
    • 2012-09-10
    • 2015-08-04
    • 2016-04-17
    • 1970-01-01
    • 2022-11-22
    • 2022-06-23
    相关资源
    最近更新 更多