Mi aplicación (.net 3.5 sp1) utiliza HttpWebRequest para comunicarse con diferentes puntos finales, a veces es a través de HTTPS donde cada servidor de alojamiento puede tener un requisito de protocolo de seguridad diferente diga TLS o SSL3 o cualquiera.Establezca SecurityProtocol (Ssl3 o TLS) en .net HttpWebRequest por solicitud
Generalmente los servidores juegan agradable y felizmente negocian/recurren a lo que SecurityProtocol usa TLS o SSL3, pero algunos no y cuando .net está configurado como TLS o SSL3 (el servidor predeterminado) esos servidores que solo admiten SSL3 causa que .net arroje un error de envío.
Por lo que puedo decir .net proporciona el objeto ServicePointManager con una propiedad SecurityProtocol que se puede establecer en TLS, SSL3 o ambos. Por lo tanto, idealmente, cuando se establece en ambos, la idea es que el cliente y el servidor deben negociar qué usar, pero como se indicó anteriormente, no parece funcionar.
Supuestamente podría establecer ServicePointManager.SecurityProtocol = Ssl3, pero ¿qué ocurre con los endpoints que desean usar TLS?
El problema que veo con ServicePointManager y SecurityProtocol es que es estático y, por lo tanto, tiene un dominio de aplicación amplio.
Así que a la pregunta ..
¿cómo iba a ir sobre el uso del SecurityProtocol con un diferente ejemplo HttpWebRequest
1) url 1 configurado para usar TLS | SSL3 (negociar)
2) url 2 fijado a SSL3 (SSL3 solamente)
Gracias por confirmar mis temores, esperaba que ese no fuera el caso. – Rich
Solicitud de MS Connect https://connect.microsoft.com/VisualStudio/feedback/details/605185/cant-set-the-security-protocol-per-servicepoint tiene el estado "no se solucionará" –
@MichaelFreidgeim Si la mira ahora , Microsoft ha respondido explicando que se solucionará en> Net Framework 4.7.1 - * "En la próxima versión de .NET Framework 4.7.1, hemos agregado nuevas propiedades a la clase HttpClientHandler que se usa en System.Net.HttpClient. Esta es la API preferida para usar para las solicitudes HTTP en lugar de HttpWebRequest. Estas nuevas propiedades se agregaron para que coincida con la versión .NET Core 2.0 que ya tiene las propiedades más nuevas en HttpClientHandler. "* – Lankymart