一台Apache2服务器上存在多个域的SSL证书问题

一台Apache2服务器上存在多个域的SSL证书问题,ssl,apache2,Ssl,Apache2,我有一台运行LAMP堆栈的服务器: me@server:~$ sudo apachectl -v Server version: Apache/2.4.10 (Debian) me@server:~$ cat /etc/*-release PRETTY_NAME="Debian GNU/Linux 8 (jessie)" ... 在这台服务器上,我有很多两个域——一个有SSL,一个没有SSL——目前一切都很好 我正在尝试将SSL添加到第二个站点,但对第二个站点的请求因以下问题而失败: [FI

我有一台运行LAMP堆栈的服务器:

me@server:~$ sudo apachectl -v
Server version: Apache/2.4.10 (Debian)

me@server:~$ cat /etc/*-release
PRETTY_NAME="Debian GNU/Linux 8 (jessie)"
...
在这台服务器上,我有很多两个域——一个有SSL,一个没有SSL——目前一切都很好

我正在尝试将SSL添加到第二个站点,但对第二个站点的请求因以下问题而失败:

[FIREFOX]
domain2.com uses an invalid security certificate. 
The certificate is only valid for the following names: domain1.com
Error code: SSL_ERROR_BAD_CERT_DOMAIN

[CHROME]
NET::ERR_CERT_COMMON_NAME_INVALID
注1:我已经检查了我的Apache版本,它允许在同一台服务器上有多个SSL站点

这使我相信,调用
domain2.com
时读取的SSL文件实际上是与
domain1.com
相关的文件

奇怪的是,如果我使用
sudoapachedispatitedomain1
禁用
domain1.com
,SSL在
https://domain2.com
。这表明SSL安装正确,但服务器上的站点配置不正确

.conf
文件如下:

me@server:~& cat /etc/apache2/sites-enabled/domain1
[...Port 80 config redacted...]
<VirtualHost *:443>
  SSLEngine on
  SSLProtocol All -SSLv2 -SSLv3
  SSLCertificateFile /etc/apache2/ssl/domain1/server.crt
  SSLCertificateKeyFile /etc/apache2/ssl/domain1/key.txt
  SSLCertificateChainFile /etc/apache2/ssl/domain1/intermediate.crt

  ServerName domain1.com
  ServerAlias www.domain1.com

  <Directory /var/www/domain1>
    [REDACTED]
  </Directory>

  [Logging information redacted]
</VirtualHost>

    me@server:~& cat /etc/apache2/sites-enabled/domain2
[...Port 80 config redacted...]
<VirtualHost *:443>
  SSLEngine on
  SSLProtocol All -SSLv2 -SSLv3
  SSLCertificateFile /etc/apache2/ssl/domain2/server.crt
  SSLCertificateKeyFile /etc/apache2/ssl/domain2/key.txt
  SSLCertificateChainFile /etc/apache2/ssl/domain2/intermediate.crt

  ServerName domain2.com
  ServerAlias www.domain2.com

  <Directory /var/www/domain2>
    [REDACTED]
  </Directory>

  [Logging information redacted]
</VirtualHost>

从所有这些,请告诉我为什么启用了
domain1.com
后,对
domain2.com
的请求会失败?

是的。。做上述的一切都很好,应该是可行的

如果不起作用,请确保检查
ServerName
字段的拼写,并且不要工作到深夜

me@server:/etc/apache2/ssl/domain1$ openssl x509 -in server.crt -noout -subject
subject= /CN=www.domain1.com

me@server:/etc/apache2/ssl/domain2$ openssl x509 -in server.crt -noout -subject
subject= /CN=www.domain2.com