Периодически возникает странная проблема, при которой мой HTTPS-вызов другой службы приводит к возникновению исключения (базовый канал закрыт, удаленный сертификат недействителен в соответствии с обратным вызовом ... и т. д.).
Я размещаю ядро .NET (461) внутри службы приложений Azure.
Мой SSL-сертификат для используемой службы - это общедоступный сертификат CA (GeoTrust / Digicert), и одни и те же вызовы работают почти все время, но у меня бывают периоды, когда они обычно выходят из строя без каких-либо изменений кода или развертываний.
Странная часть заключается в том, что я предоставил свой собственный делегат (ServerCertificateValidationCallback) для просмотра деталей возвращаемого сертификата, его цепочки, ошибок политики и т. д. - и когда я получаю сообщение об ошибке, SSLPolicyError устанавливается на RemoteCertificateChainErrors, но при итерации по ChainElements X509Chain, он возвращает единственный элемент (мой сертификат), а ChainElementStatus пуст, без соответствующей подробной информации о том, почему удаленная цепочка была признана недействительной, в нем просто указано, что это так.
Я сравнил это с автоматическим тестом с использованием badssl.com в качестве испытательного стенда, и я правильно получил полную информацию о цепочке, включая причину того, почему один из элементов был признан плохим.
Какая возможная причина могла вызвать RemoteCertificateChainErrors SSLPolicyError без какой-либо соответствующей информации о цепочке? Может быть, какой-то сетевой комплект не смог вызвать СА для оценки действительности сертификата?
Самая странная ошибка, оцените любой ввод!





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