ssllabs.com 查找带有错误域名的证书 #2

ssllabs.com 查找带有错误域名的证书 #2

当我使用 ssllabs.com 扫描我已为其安装 SSL 的域之一时,证书 #1 验证正确,等级为“A”,但在结果页面的下方还有一个证书 #2,它似乎是从第一个域中收集的,该域出于某种原因从 apache 配置中配置了 SSL 证书,当然会给出“不匹配”,因为域与证书不匹配。想知道是否有人可以指出配置中的问题。

目前,我正在像这样设置每个为 SSL 托管的域名(域名已更改):

<Directory /home/info/>
  Options -Indexes +FollowSymLinks -Multiviews
  AllowOverride All
  Order allow,deny
  allow from all
  Require all granted
</Directory>

<VirtualHost _default_:443>
  DocumentRoot /home/info/pub/
  ServerName domain.at
  ServerAlias domain.at www.domain.at

  SSLEngine on
  SSLCertificateFile    /home/info/ssl/at.crt
  SSLCertificateKeyFile /home/info/ssl/at.key
  SSLCertificateChainFile /home/info/ssl/at.ca
</VirtualHost>

<VirtualHost _default_:443>
  DocumentRoot /home/info/pub/
  ServerName domain.dk
  ServerAlias domain.dk www.domain.dk

  SSLEngine on
  SSLCertificateFile    /home/info/ssl/dk.crt
  SSLCertificateKeyFile /home/info/ssl/dk.key
  SSLCertificateChainFile /home/info/ssl/dk.ca
</VirtualHost>

<VirtualHost _default_:443>
  DocumentRoot /home/info/pub/
  ServerName domain.fr
  ServerAlias domain.fr www.domain.fr

  SSLEngine on
  SSLCertificateFile    /home/info/ssl/fr.crt
  SSLCertificateKeyFile /home/info/ssl/fr.key
  SSLCertificateChainFile /home/info/ssl/fr.ca
</VirtualHost>

因此,例如,当使用 ssllabs 扫描“domain.fr”时,它会正确验证 .fr 证书,但随后会继续尝试验证“domain.at”。如果我注释掉“domain.at”配置,它会尝试验证“domain.dk”。为什么会这样?非常感谢您的帮助。

答案1

根据 Apache文档,如果不启用 SNI,则无法在同一个 IP 和端口上提供多个 SSL VirtualHosts。要使您的配置正常工作,您应该将其添加到 Apache 配置SSLStrictSNIVHostCheck指令中,更多信息可以在本文

或者另一种解决方案,安装 nginx 作为反向代理并在 nginx 上终止 SSL,这样 Apache 将只提供 http 服务。

相关内容