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コアでこの検証をバイパスする方法はありますか?
はい、以下のコードを使用して証明書をバイパスできます...
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)
これは私のために働いた、
カスタムの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);
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