ubuntu – 服务器证书不包含与服务器名称匹配的ID

我们的服务器昨天升级了,所以它现在有了更新的Ubuntu,Apache 2.4.10,PHP等.在我把所有东西都放回去后,Apache开始抱怨我的配置.

服务器托管一个站点,该站点使用通配符为不同的客户提供动态内容,并包含3个通配符证书,用于为这些客户提供不同的服务.

通配符的配置的一部分如下所示:

<VirtualHost *:80>
    ServerName *.dashboard.example.com
    ServerAlias *.dashboard.example.com
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^(.+)\.dashboard.example\.com$
    RewriteRule ^/(.*)$https://%1.dashboard.example.com/$1 [R=302,L]
</VirtualHost>

<VirtualHost *:443>
    ServerAdmin webmaster@example.com
    ServerName *.dashboard.example.com
    ServerAlias *.dashboard.example.com
    DocumentRoot /var/www/dashboard.example.com/web

    <Directory />
        AllowOverride All
        Options -Indexes +MultiViews +FollowSymLinks
        Order Deny,Allow
        Allow from all
    </Directory>

    ErrorLog /var/log/apache2/dashboard.example.com-error.log
    CustomLog /var/log/apache2/dashboard.example.com-access.log combined

    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/bundle_wc_dashboard_example_com.crt
    SSLCertificateKeyFile /etc/ssl/certs/wildcard_dashboard_example_com.key
</VirtualHost>

请注意,我正在使用捆绑包作为证书文件.使用SSL检查时,对中间文件和根文件使用单独的文件会导致更糟糕的结果.然后无法识别GeoTrust证书.我的SSL证书供应商解释自Apache 2.4,证书应该捆绑.

所以这对我不起作用:

SSLCertificateFile /etc/ssl/certs/wildcard_dashboard_example_com.crt
SSLCertificateKeyFile /etc/ssl/certs/wildcard_dashboard_example_com.key
SSLCertificateChainFile /etc/ssl/certs/GeoTrust_Global_CA.crt
SSLCertificateChainFile /etc/ssl/certs/RapidSSL_SHA256_CA_G3.crt

但是,上面的内容确实适用于Apache 2.2.

当我尝试启动apache时,它会抱怨ServerName值:

[FAIL] Reloading web server: apache2 Failed!
[warn] The apache2 configtest Failed. Not doing anything. ... (warning).
Output of config test was:
AH00526: Syntax error on line 42 of /etc/apache2/sites-enabled/3-production.conf:
Invalid ServerName "*.dashboard.example.com" use ServerAlias to set multiple server names.
Action 'configtest' Failed.
The Apache error log may have more information.

所以似乎不允许使用星号.如果我删除了星号,apache会启动,但域的错误日志中会出现错误

Fri Mar 11 10:32:13.821304 2016] [ssl:warn] [pid 18019] AH01909: dashboard.example.com:443:0 server certificate does NOT include an ID which matches the server name

从其他来源我发现了以下命令,该命令应该用于确定应该用作ServerName的CommonName:

openssl x509 -in wildcard_dashboard_example_com.crt -noout -subject

哪个回报:

subject= /CN=*.dashboard.example.com

我的浏览器确实显示绿色锁定,但SSL检查抱怨我错过了一个中间/链证书文件(见截图).对于其他2个通配符域和1个不是通配符的普通子域,同一服务器上也会出现同样的问题.即使有apache声明服务器证书也不包含与服务器名称匹配的ID.
站点使用通配符为不同的客户提供动态内容,并为这些客户包含3个不同服务的通配符证书.

关于如何解决这个问题的任何想法?我还能做些什么来检查什么是错的?

2016年5月18日更新

我在4月初修好了.似乎提供SSL证书的公司给了我们一个旧的根证书.他们给我邮寄了一个包含捆绑证书和单独证书文件的zip.我尝试多次安装这些.然后我手动将所有文件内容与其他有效的网站进行了比较.我发现了一个区别,并从他们的网站手动重新下载了证书.

GeoTrust证书不同.安装后,一切都像一个魅力.我的老板告诉我他会联系他们,但不幸的是,这件事从未发生过.无论如何,快乐它现在正在工作.

如果证书仅对* .dashboard.example.com有效,则对dashboard.example.com无效(后者与通配符不匹配).

ServerName用于指定站点的规范名称(单个名称).
其他名称通配符仅进入ServerAlias.

设置例如ServerName foo.dashboard.example.com应该可以工作(与您拥有的ServerAlias结合使用).

关于证书链中提到的问题,这些问题似乎与实际问题无关.
我建议确保正确捆绑所有必需的中间证书.

正如您所说SSLCertificateChainFile已经过时,您不需要使用它,您可以将所有证书放在SSLCertificateFile中.

Qualy’s SSL Labs测试可用于查看是否缺少任何中间证书或是否存在其他问题.

相关文章

目录前言一、创建Hadoop用户二、更新apt和安装Vim编辑器三、...
原文连接:https://www.cnblogs.com/yasmi/p/5192694.html ...
电脑重启后,打开VirtualBox,发现一直用的虚拟机莫名的消失...
参见:https://blog.csdn.net/weixin_38883338/article/deta...
Ubuntu 18.04 LTS 已切换到 Netplan 来配置网络接口。Netpla...
介绍每个 Web 服务都可以通过特定的 URL 在 Internet 上访问...