Проверка сертификата игнорирует общее имя и проверяет только альтернативы?

У меня есть сертификат, который имеет 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 может соответствовать домену.

Другие вопросы по тегам