LetsEncrypt 和其他 CA 在 Apache2.2 中混合“重叠”

LetsEncrypt 和其他 CA 在 Apache2.2 中混合“重叠”

似乎我无法在正在运行的机器上获取另一个 SSL 证书。

我使用 Apache 2.2,我们有一个带有 SSLCertificate 的域,由 GlobalSign 签名。现在我想为同一台机器上的另一个域添加另一个证书 (letsEncrypt)。(SNI)

为此,我按照网站上的说明,在另一台机器上使用 certbot certonly -manual 创建了一个证书,然后将其放在我的网络服务器上。

我在那里从 apache 更改了 ports.conf 并添加NameVirtualHost *:433并将 sites/available/default-ssl 的 VirtualHost-Statement 从 更改_default_:433*:433

然后我将 SSL-vHost 添加到新域的配置文件中

<IfModule mod_ssl.c>
<VirtualHost *:433>

ServerAdmin [email protected]
DocumentRoot /var/www/newdomain/html
ServerName domain.org
ServerAlias www.domain.org

    SSLEngine On
    SSLCertificateFile /etc/letsencrypt/live/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/chain.pem

 #Setting goes here

</VirtualHost>
</IfModule>       

当我跑步时apache2ctl configtest我仍然

[Fri Mar 31 15:55:37 2017] [warn] _default_ VirtualHost overlap on port 433, the first has precedence

为什么?当我尝试通过 https 访问新域时,它们显示浏览器仍然获取旧的 GlobalSign-Cert,该证书适用于完全不同的域,因此不被接受:

 domain.org uses an invalid security certificate. 
 The certificate is only valid for the following names: signeddomainsiown.org 
 Error code: SSL_ERROR_BAD_CERT_DOMAIN

我明白了,肯定有某个条目“先出现”,而服务器发送了错误的证书,或者证书链是错误的,但我该如何解决这个问题?我已经 grep 了其他默认我的配置中有条目,但没有找到任何东西。

答案1

您不能在同一个 Apache 实例上使用两个单独的 SSL 证书。原因是 NameVirtualHost 配置是在与 Web 服务器建立连接后查找的,在本例中是通过端口 443 上的 SSL 进行查找的。为此,它会选择第一个配置的证书,因为在建立连接之前它不会有主机信息。

就您而言,您必须对两个域名使用单个 SSL 证书,但要获取可用于多个域名的证书。它通常称为 SAN(主题备用名称)证书,我们可以在其中添加多个域名(通常最多 10 个)

相关内容