web-dev-qa-db-ja.com

SSL接続を確立できませんでした

ASP.NETコアアプリケーションでサードパーティのライブラリ( Splunk c#SDK )を使用しています。このSDKを使用してlocalhost Splunkサービスに接続しようとしていますが、次のような例外が表示されます。

System.Net.Http.HttpRequestException:SSL接続を確立できませんでした。内部例外を参照してください。

そして内部の例外は言います:

検証手順に従って、リモート証明書は無効です。

このSDKは内部でHTTPクライアントを使用しますが、このオブジェクトにアクセスしてHttpClientHandlerを構成することはできません。

Googleでの検索はすべて、ServicePointManagerを使用してSSL検証をバイパスすることになりますが、このソリューションはAsp.Netコアでは機能しません。

ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

Asp.Netコアでこの検証をバイパスする方法はありますか?

6
MVafa

はい、以下のコードを使用して証明書をバイパスできます...

        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

これは私のために働いた、

カスタムのHttpClientHandlerを指定してSplunk.Client.Contextを作成し、バイパスします[〜#〜] ssl [〜#〜]無効な証明書エラー。

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 ;
};

このブログは私を助けました

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