WinHttp получить альтернативное имя субъекта из сертификата?
Я работаю над одним проектом, в котором клиент предоставил один сертификат с альтернативным именем субъекта со всеми возможными 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?
Заранее спасибо.