为什么我的通配符自签名证书上的URL不匹配?

我试图设置一个由Apache使用的自签名通配符证书,通常这是非常简单的,我只需要在根域中设置一个主题名,并在通用名字段中指定* .dcrdev.com。 但是,似乎这是行不通的 – 当我尝试访问该网站的铬或testing它在sslabs他们报告时访问任何子域名,如www.dcrdev.com或subdomain1.dcrdev.com不匹配。 我不知道为什么,当我在chrome中查看证书信息时,它显示的通用名称是* .dcrdev.com。

我的csr:

Certificate Request: Data: Version: 0 (0x0) Subject: C=GB, ST=South Yorkshire, L=Sheffield, O=DCR Holdings, OU=DCR Development, CN=*.dcrdev.com/[email protected] Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (4096 bit) Modulus: lah blah 

我的证书:

 Certificate: Data: Version: 3 (0x2) Serial Number: 1048577 (0x100001) Signature Algorithm: sha256WithRSAEncryption Issuer: C=GB, ST=South Yorkshire, L=Sheffield, O=DCR Holdings, OU=DCR Root Authority, CN=*.dcrdev.com/[email protected] Validity Not Before: Oct 13 23:41:03 2015 GMT Not After : Oct 10 23:41:03 2025 GMT Subject: C=GB, ST=South Yorkshire, L=Sheffield, O=DCR Holdings, OU=DCR Development, CN=*.dcrdev.com/[email protected] Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (4096 bit) Modulus: Blah blah Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: 83:2D:84:F1:E2:B0:72:30:E6:3B:6A:F6:8E:6A:68:8E:3F:D4:69:44 X509v3 Authority Key Identifier: keyid:F5:A6:82:E2:DD:52:10:CE:FD:C5:C7:E1:E9:CF:C6:8C:30:26:D7:DC X509v3 Subject Alternative Name: DNS:dcrdev.com X509v3 Key Usage: Digital Signature, Non Repudiation, Key Encipherment Signature Algorithm: sha256WithRSAEncryption Blah blah 

Crossdupe的https://stackoverflow.com/questions/3093112/certificateexception-no-name-matching-ssl-someurl-de-found

主题通用名称不再控制HTTPS证书。

AFAICT实际上并没有一个标准的说法,但是 多年来的实践是,浏览器等使用SubjectAlternativeName(SAN)扩展名(如果存在)和CommonName(CN)Subject(仅当SAN不存在时)。 您的证书具有与dcrdev.com存在的SAN,所以只有匹配。

更新:在RFC2818 3.1中find:

如果存在dNSNametypes的subjectAltName扩展名,则必须将其用作标识。 否则,必须使用证书的主题字段中的(最具体的)通用名称字段。 虽然通用名称的使用是现有的惯例,但已被弃用,并鼓励证书颁发机构使用dNSName。

该RFC是2000年5月,但我记得我所遇到的证书直到2010年才开始使用SAN。2011年3月由@JennyD确定的RFC6125(是否可以在答案中起作用)是一种更一般的处理,但明确地说

本文档也不会取代本文档之前发布的现有应用协议的规范中提供的validation服务标识的规则,例如附录B中摘录的规范。

附录B包括RFC2818。

来自CA-Browser论坛的基准要求确实要求CA必须颁发带有SAN的证书,而Subject.CN已被弃用,尽pipe这不是对浏览器/客户端的直接要求。

如果要同时使用域和子域(仅限一个级别),请在SAN中放入两个dnsName条目,一个用于dcrdev.com ,一个用于*.dcrdev.com