ホームページ >バックエンド開発 >C++ >HttpClient で HTTPS 呼び出しを行うときに発生する「信頼関係を確立できませんでした」エラーを修正するにはどうすればよいですか?

HttpClient で HTTPS 呼び出しを行うときに発生する「信頼関係を確立できませんでした」エラーを修正するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-18 00:24:13800ブラウズ

How Can I Fix

HttpClient を使用して安全な HTTPS 呼び出しを行う

質問:

HttpClient を使用して HTTPS リクエストを行うと、「基になる接続が閉じられました: SSL/TLS セキュア チャネルの信頼を確立できません。」というエラーが発生します。

解決策:

この問題を解決するには、次の手順に従ってください:

  1. セキュリティプロトコルの設定:

    デフォルトで使用される TLS プロトコルを指定します。コードに次の行を追加します:

    <code class="language-csharp">System.Net.ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;</code>
  2. HttpClient コードを変更します:

    HTTPS 呼び出しをサポートするために HttpClient コードを変更しました:

    <code class="language-csharp">HttpClient httpClient = new HttpClient();
    System.Net.ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
    httpClient.BaseAddress = new Uri("https://foobar.com/");
    httpClient.DefaultRequestHeaders.Accept.Clear();
    httpClient.DefaultRequestHeaders.Accept.Add(
        new MediaTypeWithQualityHeaderValue("application/xml"));
    
    var task = httpClient.PostAsXmlAsync<devicerequest>("api/SaveData", request);</code>

追加メモ:

  • このソリューションは、サーバーが上位の TLS バージョン (TLS 1.2 など) のみをサポートしていることを前提としています。
  • サーバーがカスタム証明書またはキーを必要とする場合は、追加の構成が必要です。

以上がHttpClient で HTTPS 呼び出しを行うときに発生する「信頼関係を確立できませんでした」エラーを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。