Проверка сертификата игнорирует общее имя и проверяет только альтернативы?
У меня есть сертификат, который имеет CN=*.some.domain
а затем альтернативные имена DNS:*.sub1.some.domain
, DNS:*.sub2.some.domain
(Еще 2 таких)
Я предоставил сертификат для nginx-входа в kubernetes, который служит host.some.domain
, И это дает мне ошибку:
controller.go:1041] unexpected error validating SSL certificate default/tls-cert for host dwarf30.epiqa.certicon.cz. Reason: x509: certificate is valid for *.sub1.some.domain, *.sub2.some.domain, not host.some.domain
В сообщении, в частности, не упоминается общее имя, в нем перечислены только альтернативы.
Это мое недопонимание, как взаимодействуют CN и Alternates, или это проблема в контроллере nginx-ingress (примечание: helm настаивает на установке довольно старой версии контейнера 0.13.0)?
1 ответ
Уже в RFC 2818, который стандартизирует HTTPS (HTTP поверх TLS) 2000 года, четко сказано:
Если присутствует расширение subjectAltName типа dNSName, оно ДОЛЖНО использоваться в качестве идентификатора.
Поскольку у вас есть DNS-имена в качестве альтернативных имен субъектов, CN будет игнорироваться. Обратите внимание, что использование CN вместо Subject Alternative Names не рекомендуется в течение многих лет, и некоторые браузеры (в частности, Chrome) будут смотреть только на Subject Alternative Names и не будут работать, если SAN не существует, даже если CN может соответствовать домену.