Наткнулся на странную вещь. Framework .NET 4.0 и ниже не поддерживает ничего кроме SSLv3 и TLS 1.0, при этом TLS 1.0 отображается браузерами как не надежное подключение (обычно красным). Перейдя на TLS 1.2 обнаружил что WebClient не работает с ним вообще, сообщая ошибку: Запрос был прерван: Не удалось создать защищенный канал SSL/TLS. Решение было не неожиданным и разоружающим одновременно:
- TLS 1.2 поддерживается только Framework 4.5 и новее;
- Чтобы заставить его работать в 4.5 надо сделать так:
1 2 3 |
Dim wc As New Net.WebClient System.Net.ServicePointManager.SecurityProtocol = Net.SecurityProtocolType.Tls Or Net.SecurityProtocolType.Ssl3 Dim Data As String = wc.DownloadString("https://my.tls12.site") |
Если перейти на Framework 4.5 у вас нет возможности (например нужна поддержка Windows XP), то прописываем в настройках mod_ssl:
1 |
SSLProtocol all |
Это позволит веб-серверу использовать все протоколы шифрования.