• 关于SSL证书通用名(CN)通配符的实验

    实验目的

    什么是通配符SSL证书?威瑞信的解释:SSL通配符证书是在一个单一的证书中,在通用名(域名)中包含一个“*”通配符字段。这使得该证书可以保护无限数量的多个子域名(主机)。例如,一个通配符证书*. domain.com ,可用于www.domain.com , mail.domain.com ,pay.domain.com …

    如果使用自己认证的CA,颁发一个通用名为*.com或者*.net的证书,能不能分别匹配所有的.com或者.net的网站?再拓展一下,如果颁发一个通用名为*的证书能不能匹配任何网站?

    本实验探索浏览器对SSL通配符证书的匹配情况,对以上所提出的疑问进行解答。

    实验要求

    1、用自己生成,并在授权信任的的CA生成*.net和*两种证书

    2、配置对应的WEB网站

    3、在不同的浏览器中访问对应WEB网站,观察结果。

    实验内容

    对OpenSSL及WEB服务器的具体操作参考为nginx配置https并自签名证书一文。

    1、生成相关CA,并在各个浏览器和系统中进行授权信任,步骤略。

    2、*.creke.net、*.net.cn、*.net和*四种SSL通配符证书。

    3、配置WEB服务器,使得creke.net、ssl1.creke.net、ssl1.recgo.com与sslhost1对应*.net的证书;使得ssl2.creke.net、ssl2.recgo.com与sslhost2对应*的证书;使得blog.creke.net与ssl1.blog.creke.net对应*.creke.net的证书;使得creke.net.cn对应*.net.cn的证书。注意,由于SSL不能用基于域名方式的方法来支持多个SSL,只能用多个IP或者多个端口。在这里,我们将不同的域名对应不同的端口。

    4、在本地host解析以上各个域名

    5、在IE、Firefox、Chrome、Opera、Safari五大浏览器中访问第三部配置的8个网站。

    实验结果

    除了blog.creke.net和creke.net.cn能够正常认证外,其余的8个网站均提示证书错误。所有五大浏览器结果一致。

    实验结论

    1、浏览器对于通配符*只匹配域名中的某一级,即通配符*不匹配“.”。如*.creke.net匹配blog.creke.net,但不匹配ssl1.blog.creke.net。

    2、通配符后面的域名必须有两级或以上。如*.creke.net和*.net.cn都是可用的证书;而*.net和*都是不可用的,任何域名都无法通过认证。

    3、通过进一步实验得知,通配符不允许为空。如:*.creke.net是不能匹配creke.net的。