通配符对子子域名不起作用?

通配符对子子域名不起作用?

我有某个域名的通配符 SSL,为了便于提问,假设是*.example.com。如果我匹配直接子域名(如 ),它工作正常aaaa.example.com,但当我尝试关联子子域名(如 )时aaa.bbb.example.com,我的浏览器中出现安全错误,提示

aaa.bbb.example.com 和 *.example.com 不匹配

这是正常行为吗?或者我需要进一步调查吗?

以下是我的 CRT 内容,仅供参考:

-----BEGIN CERTIFICATE-----
MIIFGTCCBAGgAwIBAgISESH5zsC/3lJ1F9owE9tmDTj+MA0GCSqGSIb3DQEBBQUA
MF0xCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTMwMQYD
VQQDEypHbG9iYWxTaWduIE9yZ2FuaXphdGlvbiBWYWxpZGF0aW9uIENBIC0gRzIw
HhcNMTIwODEzMDgxNTAyWhcNMTMwNzI1MTU0MTE5WjBhMQswCQYDVQQGEwJGUjEW
MBQGA1UECBMNSWxlLWRlLUZyYW5jZTEOMAwGA1UEBxMFUEFSSVMxFTATBgNVBAoT
DGNvbm5lY3RoaW5nczETMBEGA1UEAwwKKi5hZHRhZy5mcjCCASIwDQYJKoZIhvcN
AQEBBQADggEPADCCAQoCggEBALWn1m2ZqrOmZgssMNcu9+IqsFi1jLAmj0fdSRy/
H1X7f5aZX/HYw10UBTTb4M16UUM97RrQz18YHIyUvAT/vtFyWWSY1qQOQSLnAkGp
UCvkOeWqvm9dG0Lc8OPuhvjhp/m8GKkrvGM0XSzpMedgVMlnpO/dg6j2mHpZ7vnf
vM9p0eW4GOHwh4S0etWrj3ReMykFgGoHgNqrmChJ4OdiKzs7KxVamZQ5AieTJpHN
jlQYCi6IuZCRrLHOC6F4Ficjfgvl4ChQZDrSI1ob+WqMWtNIFc1QEY2U4A/fo75x
baFILMAZhD/wdbL9WvfVOMcUP98bobIrzs60uvzVIB+DMUUCAwEAAaOCAc0wggHJ
MA4GA1UdDwEB/wQEAwIFoDBMBgNVHSAERTBDMEEGCSsGAQQBoDIBFDA0MDIGCCsG
AQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAf
BgNVHREEGDAWggoqLmFkdGFnLmZygghhZHRhZy5mcjAJBgNVHRMEAjAAMB0GA1Ud
JQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjBFBgNVHR8EPjA8MDqgOKA2hjRodHRw
Oi8vY3JsLmdsb2JhbHNpZ24uY29tL2dzL2dzb3JnYW5pemF0aW9udmFsZzIuY3Js
MIGWBggrBgEFBQcBAQSBiTCBhjBHBggrBgEFBQcwAoY7aHR0cDovL3NlY3VyZS5n
bG9iYWxzaWduLmNvbS9jYWNlcnQvZ3Nvcmdhbml6YXRpb252YWxnMi5jcnQwOwYI
KwYBBQUHMAGGL2h0dHA6Ly9vY3NwMi5nbG9iYWxzaWduLmNvbS9nc29yZ2FuaXph
dGlvbnZhbGcyMB0GA1UdDgQWBBQeYAmRFj71H9Gd5vF4VXKa3ciAcDAfBgNVHSME
GDAWgBRdRrKNxEt0HLvt9XO2Orc4j3WefjANBgkqhkiG9w0BAQUFAAOCAQEAY+K4
KpGyAc+H1wEKBNZ5eET8WwNevDrtZtLD8EbUPBzHoJaMzQpob4r6ax9pR13zoN9Q
gjujbuKSAbCBCkoOAKbjKZj4CXTPc004TNsDutRqIXflhSV+uhBdU1FqS4Ec90GY
QKcLII3iRnnlm9xNFHc+uidt0JkYlR8KHwmuP22XTEP/UkQGfOtKEY1+UM8BhQRU
5PSdoZv64E1wvA6fgVmnqBixwwAqF/PFxExlLtEw0jfDLpU72vgJ1Wt0y2/SpF33
gsh0Vh+TtltjnqQu62aR7LUPCEfxXfIpUkPJeNgNQwDEk81UKcz7zZnwc4l2ebE8
+2qd7XzDj9OPiVwtlA==
-----END CERTIFICATE-----

答案1

RFC 2818

匹配使用 [RFC2459] 指定的匹配规则执行。如果证书中存在给定类型的多个身份(例如,多个 dNSName 名称,则集合中任何一个的匹配都被视为可接受。)名称可能包含通配符 *,该通配符被视为与任何单个域名组件或组件片段匹配。例如,.a.com 与 foo.a.com 匹配,但不与 bar.foo.a.com 匹配。f.com 与 foo.com 匹配,但不与 bar.com 匹配。

为了解决这个问题,我们引入了 UCC 证书,又称带主题备用名称 (SAN) 的通配符证书,它允许您指定(以及不同的域名)多级子域作为证书的有效主机名。所有主流浏览器都支持这些证书。

答案2

通配符证书不支持子子域名。换句话说,它们仅适用于当前域名级别。

因此,如果您购买证书,*.foo.com它也不会安全*.bar.foo.com

网上有各种资源,包括 Verisign、GlobalTrust 和其他公司,也对此进行了解释。我知道这很糟糕!

答案3

这是预期的行为。摘自RFC2818 - TLS 上的 HTTP

名称可能包含通配符 *,该通配符被认为与任何单个域名组件或组件片段匹配。例如,*.a.com 与 foo.a.com 匹配,但不与 bar.foo.a.com 匹配。f*.com 与 foo.com 匹配,但不与 bar.com 匹配。

答案4

进一步调查引起您烦恼的证书范围问题:

从技术上讲,可以为 *.*.domain.com 创建证书,我自己这样做了,但浏览器不支持这样做。

测试结果和更多信息参见“二级子域名通配符 SSL 证书“。

相关内容