Я работаю над одним проектом, в котором клиент предоставил один сертификат, имеющий альтернативное имя субъекта со всеми возможными IP-адресами и именами DNS, к которым он может подключиться.
Текущая реализация HTTPS в нашем коде использует WinHttp API дляполучение правильного сертификата.
Мы используем ниже API:
CertFindCertificateInStore
Сертификат имеет следующее:
Subject-> CN установлен на *.abc.com
, и мы пытаемсяподключиться к uat.abc.com
из приложения.
При открытии безопасного соединения мы получаем следующую ошибку:
WINHTTP_CALLBACK_STATUS_FLAG_CERT_CN_INVALID - SSL certificate common name (host name field) is incorrect, for example, if you entered www.microsoft.com and the common name on the certificate says www.msn.com.
Так что после поиска winhttp я обнаружил, что Subject-> CN name не совпадает с именемимя хоста.Но сертификат имеет подстановочный знак, поэтому он должен совпадать.
После этого мы получили второй сертификат с «Альтернативным именем субъекта» (расширенный сертификат), заполненный IP-адресами и DNS-именами.При тестировании с этим сертификатом мы по-прежнему получаем ту же ошибку, что и выше.
Кто-нибудь имеет представление о том, как получить доступ к альтернативному имени субъекта через winhttp API?
Заранее спасибо.