TLDR
Ошибка, которую вы видите, связана с конкретным расширением сертификата, называемым Subject Alternative Name
, в котором 10.2.14.35
не указан в качестве действительного IP-адреса.
Ошибка такжеуказывает, что сертификат CA уже является доверенным.Если ЦС не был доверенным, проверка сертификата провалилась бы раньше и вызвала бы другую ошибку, что-то вроде
Построение пути PKIX не удалось: sun.security.provider.certpath.SunCertPathBuilderException: невозможно найти допустимый путь сертификациик запрошенной цели
Поскольку у меня нет доступа к вашему конкретному сертификату, я попытаюсь проиллюстрировать, используя сертификат сервера example.com.
Для просмотра сертификата яЯ буду использовать openssl , но доступно несколько других инструментов - например, большинство браузеров могут отображать детали сертификата.
Я удалю вывод, который, как мне кажется, не нужен для иллюстрациичто я хочу
$ openssl s_client -connect example.com:443 -showcerts | openssl x509 -noout -text
[...]
Subject: C = US, ST = California, L = Los Angeles, O = Internet Corporation for Assigned Names and Numbers, OU = Technology, CN = www.example.org
[...]
X509v3 Subject Alternative Name:
DNS:www.example.org, DNS:example.com, DNS:example.edu, DNS:example.net, DNS:example.org, DNS:www.example.com, DNS:www.example.edu, DNS:www.example.net
Поле Subject
содержит различные виды информации, но значение CN
(Common Name) - www.example.com.Ранее большинство или все браузеры использовали это для проверки того, что сертификат был выдан для сервера, к которому был подключен браузер.Однако, более поздняя версия Chrome (и я думаю, что Firefox) полностью игнорирует информацию в поле Subject
и вместо этого использует Subject Alternative Name
.
Для Chrome 58 ипозже для сопоставления имени домена и сертификата сайта используется только расширение subjectAlternativeName, а не commonName.Альтернативное имя субъекта сертификата может быть доменным именем или IP-адресом.Если сертификат не имеет правильного расширения subjectAlternativeName, пользователи получают ошибку NET :: ERR_CERT_COMMON_NAME_INVALID, сообщающую им, что соединение не является частным.
Итак, ваша ошибка связана с тем, чтосертификат сервера, представленный 10.2.14.35
, не содержит IP-адрес, к которому вы подключаетесь.Если посмотреть на сертификат с использованием openssl, сертификат, представленный сервером, должен иметь по крайней мере Subject Alternative Name
, и он должен содержать по крайней мере IP Address:10.2.14.35
.Построенный минимальный пример будет выглядеть примерно так.
$ openssl s_client -connect 10.2.14.35:443 -showcerts | openssl x509 -noout -text
[...]
Subject: CN = 10.2.14.35
[...]
X509v3 Subject Alternative Name:
IP Address:10.2.14.35