RemoteCertificateChainErrors - Пустой ChainElementStatus C # - PullRequest
0 голосов
/ 29 мая 2018

Периодически возникает странная проблема, из-за которой мой HTTPS-вызов другой службе приводит к возникновению исключения (базовый канал закрыт, удаленный сертификат недействителен в соответствии с обратным вызовом ... и т. Д.).

Я размещаю ядро ​​.net(461) внутри службы приложений Azure.

Мой SSL-сертификат на используемую службу является общедоступным сертификатом CA (GeoTrust / Digicert), и одни и те же вызовы работают почти все время, но я получаю периоды, когдаони обычно терпят неудачу без какого-либо изменения или развертывания кода.

Странно, я предоставил свой собственный делегат (ServerCertificateValidationCallback) для просмотра сведений о возвращаемом сертификате, его цепочке, ошибках политики и т. д., а также когда яПолучив ошибку, SSLPolicyError устанавливается в RemoteCertificateChainErrors, но при переборе по ChainElements X509Chain он возвращает один элемент (мой сертификат) - и ChainElementStatus пуст, без соответствующей подробной информации о том, почему удаленная цепочкабылосчитается недействительным, просто заявляет, что это так.

Я сравнил это с автоматическим тестом, использующим badssl.com в качестве тестовой площадки, и я правильно получил полную информацию о цепочке, включая причину, почему один из элементовбыл признан плохим.

Какая возможная причина могла вызвать RemoteCertificateChainErrors SSLPolicyError без какой-либо соответствующей информации о цепочке?Может быть, часть сетевого комплекта не смогла позвонить в сам центр сертификации для оценки действительности сертификата?

Самая странная ошибка, оцените любой ввод!

1 Ответ

0 голосов
/ 03 июня 2018

Мы наконец решили эту проблему, добавив промежуточный сертификат вместе с нашим ssl-сертификатом на стороне службы.Мы по-прежнему считаем, что проблема заключается в том, что своевременно не удалось проверить промежуточный сертификат, если он не включен в комплект, но нам еще предстоит это проверить.

...