Я пытаюсь выполнить HTTPS-запрос GET, используя аутентификацию сертификата клиента, и он не работает с
The request was aborted: Could not create SSL/TLS secure channel.
Я пытаюсь выполнить тот же запрос, используя Java, и он отлично работает, я вижу следующее в журналах Java (разделенных только на интересные части):
*** ClientHello, TLSv1.2
main, WRITE: TLSv1.2 Handshake, length = 185
....
*** ServerHello, TLSv1.1
main, READ: TLSv1.1 Handshake, length = 3339
Что, насколько я понимаю, означает, что сервер по какой-то причине не поддерживает TLS 1.2, но клиент принимает это и просто возвращается к TLS 1.1.
Когда я установил
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11;
.NET тоже работает нормально. Теперь вопрос: почему .NET не возвращается к TLS 1.1, как это сделала Java, могу ли я как-то включить этот откат (без фактической попытки TLS 1.2, поймать исключение и попробовать с TLS 1.1)?
Ssl3 | Tls
. В .NET 4.7 по умолчанию он должен бытьSystemDefault
. Это полностью чистый проект без каких-либо сопутствующих изменений? Что, если вы просто создадите новый проект и посмотрите, что по умолчанию? - person Evk   schedule 18.10.2017