2008-10-03 22 views
8

No sé si tengo toda la información necesaria para formular bien esta pregunta, así que tengan paciencia conmigo.¿Cómo se obtiene un objeto System.Web.HttpWebRequest para usar SSL 2.0?

Tengo una página web local (significado local 192.168. *) Que está protegida con un certificado SSL autofirmado. Estoy intentando acceder a esta página utilizando un objeto System.Net.HttpWebRequest, pero me encuentro con un problema extraño.

Si se accede a esta página en Internet Explorer con la opción "Usar SSL 2.0" desactivada, el navegador devuelve un error como si no pudiera establecer una conexión. (En otras palabras, un error de conexión del navegador, a diferencia de un error enviado por el servidor). Si la opción "Usar SSL 2.0" está activada, la página funciona bien y recibe la advertencia estándar de que se trata de un certificado autofirmado. , ¿quieres continuar, etc. (Curiosamente, Firefox, que supuestamente no tiene SSL 2.0 encendido, funciona bien)

Ahora mi problema es que estoy tratando de acceder a esta página con HttpWebRequest objeto y el error que está devolviendo es que la conexión se ha cerrado inesperadamente, al igual que el error IE arroja cuando "Usar SSL 2.0" está desactivado. (Ya tengo el código en lugar de ignorar el hecho de que es un certificado autofirmado, pero ni siquiera está llegando tan lejos).

¿Cómo obtengo System.Net.HttpWebRequest, así, "Use SSL 2.0 "cuando está haciendo su pedido?

Respuesta

15

He llegado a este problema yo mismo cuando se trata de Ssl3, aunque no estoy seguro de si el mismo consejo podría funcionar para SSL2?

Para evitar el problema que fija la bandera SSL3 en el protocolo de seguridad de este modo:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;

visita estos links para más detalles:

system.net.servicepointmanager.securityprotocol on MSDN

security protocol enumeration on MSDN

Pueden señalarle la dirección correcta si tiene suerte :)

+0

¡Eso fue todo! Tan pronto como lo configuré explícitamente para SSL3, funcionó. ¡Gracias! –

+0

Muy bien saber que funcionó :) – Bittercoder

+0

Muchas gracias. El uso de System.Diagnostics para activar el seguimiento de System.Net me proporcionó la información de System.Net de estos registros: 0: [16212] InitializeSecurityContext (In-Buffers count = 2, Out-Buffer length = 0, return code = AlgorithmMismatch). Error de System.Net: 0: [16212] Excepción en HttpWebRequest # 49844091 :: - La solicitud se anuló: No se pudo crear el canal seguro SSL/TLS .. Error de System.Net: 0: [16212] Excepción en HttpWebRequest # 49844091 :: GetResponse: la solicitud se anuló: no se pudo crear el canal seguro de SSL/TLS. ' – barthoda

Cuestiones relacionadas