web-dev-qa-db-fra.com

La connexion SSL n'a pas pu être établie

J'utilise une bibliothèque tierce ( Splunk c # SDK ) dans mon application principale ASP.NET. J'essaye de me connecter à mon service localhost Splunk via ce SDK, mais je reçois une exception disant:

System.Net.Http.HttpRequestException: la connexion SSL n'a pas pu être établie, voir exception interne.

Et l'exception intérieure dit:

Le certificat distant n'est pas valide selon la procédure de validation.

Ce SDK utilise le client HTTP sous le capot, mais je n'ai pas accès à cet objet pour configurer HttpClientHandler.

Toutes mes recherches sur Google finissent par utiliser ServicePointManager pour contourner la validation SSL, mais cette solution ne fonctionne pas dans le noyau Asp.Net.

ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

Existe-t-il un moyen de contourner cette validation dans le noyau asp.Net?

6
MVafa

Oui, vous pouvez contourner le certificat en utilisant le code ci-dessous ...

        HttpClientHandler clientHandler = new HttpClientHandler();
        clientHandler.ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) => { return true; };

        // Pass the handler to httpclient(from you are calling api)
        var client = new HttpClient(clientHandler)
7
Rohit Jangid

Cela a fonctionné pour moi,

Créez un Splunk.Client.Context en fournissant un HttpClientHandler personnalisé , qui contourner [~ # ~] ssl [~ # ~] erreurs de certificat non valides.

HttpClientHandler handler = new HttpClientHandler();
handler.ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) => { return true; };

// Create Context 
Context context = new Context(Scheme.Https, "localhost", 8089, default(TimeSpan), handler);

// Create Service
service = new Service(context);
0
Piyush Sagar
ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, errors) =>
{
    // local dev, just approve all certs
    if (development) return true;
    return errors == SslPolicyErrors.None ;
};

Ce blog m'a aidé

https://www.khalidabuhakmeh.com/validate-ssl-certificate-with-servicepointmanager