2012-05-01 86 views
44

¿Hay algún inconveniente que pueda hacer que RestSharp ignore los errores en los certificados SSL? Tengo un cliente de prueba y el servicio al que me conecto todavía no tiene un certificado válido.RestSharp - Ignorar errores de SSL

Cuando hago una petición ahora me sale el error:

The underlying connection was closed: Could not establish trust 
relationship for the SSL/TLS secure channel. 

Gracias de antemano

/michael

Actualización:

Terminé usando:

ServicePointManager.ServerCertificateValidationCallback += 
      (sender, certificate, chain, sslPolicyErrors) => true; 
+1

La respuesta está aquí pero no puedo convertirla en una real desde mi teléfono http://www.west-wind.com/weblog/posts/2011/Feb/11/HttpWebRequest-and-Ignoring- SSL-Certificate-Errors –

+0

Estupendo - He actualizado la pregunta con la respuesta. Pero publique una respuesta "real" y la aceptaré :-) –

+4

En general, es mejor importar los certificados de prueba en los anclajes de confianza de los clientes de prueba, en lugar de ignorar por completo la verificación de certificados. En primer lugar, es más realista; en segundo lugar, evita dejar este tipo de código inseguro en su producto final. – Bruno

Respuesta

51

Como sugirió John:

ServicePointManager.ServerCertificateValidationCallback += 
     (sender, certificate, chain, sslPolicyErrors) => true; 
+3

Funciona, pero eso no es genial teniendo en cuenta que se trata de establecer un comportamiento global. – talles

4

Existe una solución mejor que la modificación de su código. Idealmente, usted quiere una solución que simule las condiciones que verá en producción y modificar su código no lo hará y podría ser peligroso si olvida tomar el código antes de implementarlo.

Necesitará un certificado autofirmado de algún tipo. Si está utilizando IIS Express ya tendrá uno de estos, solo tendrá que encontrarlo. Si aún no lo tienes, abre Firefox o el navegador que quieras e ingresa a tu sitio web. Debería poder ver la información del certificado de la barra de URL y, dependiendo de su navegador, debería poder exportar el certificado.

A continuación, abra MMC.exe y agregue el complemento Certificado. Importe su archivo de certificado en la tienda Autoridades de certificación de raíz de confianza y eso es todo lo que necesita.

Ahora, su computadora como un todo confiará implícitamente en cualquier certificado que se haya generado y no necesitará agregar código para manejar esto especialmente. Cuando pase a producción, continuará funcionando siempre que tenga un certificado válido instalado allí.

+0

Lo siento, pero no está claro para mí, demasiado difícil, a diferencia de la solución anterior que simplemente funciona. No soy experto en certificados. –

+0

Mi cliente RestSharp Rest intenta acceder al servicio REST (de terceros/externo/extranjero) que no tiene un certificado válido, cuando intento abrir su sitio solo alerta que veo en el navegador cerca de URL: "la conexión no es segura". Y no hay certificados disponibles para exportar desde el navegador, mientras escribe. No tengo la posibilidad de comprar un certificado para ese sitio/servicio, porque no es mío. Solo quiero recibir algunos datos JSON sin errores. –

Cuestiones relacionadas