c# ssl mono raspberry-pi restsharp

c# - Https POST/GET no funciona en Mono



ssl raspberry-pi (3)

Debe tener alguna conexión con Mono. De manera predeterminada, no confía en ningún certificado ssl ... revise el artículo http://www.mono-project.com/docs/faq/security/ https://github.com/restsharp/RestSharp/issues/728 https://github.com/dotnet/roslyn/issues/7422

o necesita usar openssl para analizar el certificado:

openssl s_client -showcerts -connect www.domain.com:443 openssl x509 -text -noout -in some.crt

Quiero ejecutar un HttpPost en una frambuesa usando Mono + Restsharp.

La llamada Httpie que intento reproducir en código se parece a esto:

http POST https://XXXXX.azurewebsites.net/api/report key=value

Este es el código C #:

RestClient nodeRed = new RestClient("http://XXXXX.azurewebsites.net/"); var request = new RestRequest("api/report", Method.POST); request.RequestFormat = DataFormat.Json; request.AddBody(new { Timestamp = DateTime.Now, Data = "Test" }); request.Timeout = 5000; var response = nodeRed.Execute(request);

El código funciona bien, simplemente no funciona. La Respuesta no contiene ningún contenido (respuesta del servidor con "Éxito" en httpie / MS .NET Framework).

Ya me enteré de las cosas del Certificado en Mono. Corriendo

sudo certmgr -ssl -v -m "https://XXXXX.azurewebsites.net"

Me dice que agrega dos certificados la primera vez. Ejecutarlo de nuevo agrega el primer Certificado nuevamente (y nuevamente) como si no estuviera funcionando.

X.509 Certificado v3 emitido desde: C = IE, O = Baltimore, OU = CyberTrust, CN = Baltimore CyberTrust Root Emitido para: C = EE. UU., S = Washington, L = Redmond, O = Microsoft Corporation, OU = Microsoft IT, CN = Microsoft IT SSL SHA2 Válido desde: 19/12/2013 20:07:32 Válido hasta: 19/12/2017 20:06:55 ADVERTENCIA: ¿La firma del certificado es VÁLIDA? ¿ Importar este certificado en la tienda de CA?

Si confirmo y repito la importación, certmgr me pide que vuelva a importar. ¿Cómo puedo hacer que la publicación http funcione?



Puedes intentar ignorar certificados con eso

ServicePointManager.ServerCertificateValidationCallback = (s, cert, chain, ssl) => true;

Actualizar
Como puedo ver here existe en Mono