通配符 SSL 证书不适用于裸域

Khe*_*bar 6 ssl apache-httpd

我已经*.example.com在 Apache/Ubuntu 14.04 上部署了通配符证书(Comodo PlatinumSSL)。如果客户端访问https://www.example.comhttps://example.com在 Firefox 中抛出此问题,则一切正常:

example.com uses an invalid security certificate. 
The certificate is only valid for *.example.com 
(Error code: ssl_error_bad_cert_domain)
Run Code Online (Sandbox Code Playgroud)

从 vhost 文件中提取:

<IfModule mod_ssl.c>
    <VirtualHost *:443>
        SSLEngine on
        ServerName example.com
        ServerAlias www.example.com *.example.com
        DocumentRoot /var/www/html
        SSLCertificateFile      /etc/ssl/localcerts/example_com.cer
        SSLCertificateKeyFile /etc/ssl/localcerts/example_com.key
        SSLCertificateChainFile /etc/ssl/localcerts/example_com_interm.cer
    </VirtualHost>
</IfModule>
Run Code Online (Sandbox Code Playgroud)

我怎么都https://www.example.comhttps://example.com工作没有警告?

Ste*_*ich 10

通配符匹配最左边的单个标签。那是*.example.com匹配www.example.com但不是example.comsub.foo.example.com。这意味着您要么需要获得包含*.example.comexample.com作为主题替代名称的证书,或者如果您只需要www裸域名,那么您可以获得更便宜的仅包含www.example.com和 的证书example.com