Используя Microsoft Network Monitor, я обнаружил, что HttpWebRequest
застрянет на этапе, когда он должен отправить обратно клиентский обмен ключами. Это просто не так. Сервер должным образом ждал этого, но он так и не пришел.
Что исправило: HttpWebRequest использовал SSL3 вместо TLS (даже если TLS должен автоматически превращаться в SSL3 при необходимости):
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
Почему это так, я думаю, я никогда не узнаю - только одна из тех загадочных вещей, которые потребуют больше времени, чтобы понять, чем кто-либо, кого я знаю, готов потратить ...
Одна вещь, которая отличалась от перехватов: вариант TLS имел запись "Alert" в ответе Server Hello , которая отсутствует на обмене SSL3, а также на всех обменах TLS, которые фактически работали , Любопытно, что такое же предупреждение присутствует при захвате Firefox, успешно выполняющем запрос.
Наконец, кажется, что во время первой публикации этого вопроса был временный сбой OCSP, который с тех пор был решен. Это добавляет беспорядка, но не является основной проблемой.