У меня есть подстановочный 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-----
Из RFC 2818:
Сопоставление выполняется с использованием правил сопоставления, указанных в [RFC2459]. Если в сертификате присутствует более одного идентификатора данного типа (например, более одного имени dNSName, соответствие в любом из набора считается приемлемым). Имена могут содержать подстановочный знак *, который считается совпадающим с любым одним компонент доменного имени или фрагмент компонента. Например., .a.com соответствует foo.a.com, но не bar.foo.a.com. ж.com соответствует foo.com, но не bar.com.
Чтобы обойти это, были введены сертификаты UCC, также известные как подстановочные сертификаты с альтернативными именами субъектов (SAN), которые позволяют вам указывать (вместе с разными именами доменов) многоуровневые поддомены в качестве допустимых имен хостов для сертификата. Эти сертификаты поддерживаются всеми основными браузерами.
Сертификаты с подстановочными знаками не поддерживают субдомены. Другими словами, они годны только для текущего уровня домена.
Так что если вы покупаете сертификат на *.foo.com
это также НЕ будет защищать *.bar.foo.com
.
В Интернете есть различные ресурсы, включая Verisign, GlobalTrust и другие, которые также объясняют это. Это отстой, я знаю!
Это ожидаемое поведение. Отрывок из RFC2818 - HTTP через TLS:
Имена могут содержать подстановочный знак *, который считается соответствующим любому отдельному компоненту доменного имени или фрагменту компонента. Например, * .a.com соответствует foo.a.com, но не bar.foo.a.com. f * .com соответствует foo.com, но не bar.com.
Дальнейшее расследование проблемы области действия сертификата, которая вызвала ваше раздражение:
Технически возможно создать сертификат для *. *. Domain.com, я сделал это сам, но браузеры это не поддерживают.
Результаты тестирования и многое другое указано в разделе " SSL-сертификат подстановочного знака для субдомена второго уровня ".