web-dev-qa-db-ja.com

RestSharp-SSLエラーを無視

SSL証明書のエラーをRestSharpで無視できるようにする方法はありますか?テストクライアントがあり、接続するサービスに有効な証明書がまだありません。

今すぐリクエストをすると、エラーが発生します:

The underlying connection was closed: Could not establish trust 
relationship for the SSL/TLS secure channel.

前もって感謝します

/マイケル

更新:

私は最終的に使用しました:

ServicePointManager.ServerCertificateValidationCallback +=
            (sender, certificate, chain, sslPolicyErrors) => true;
56
Michael Skarum

ジョンが提案したように:

ServicePointManager.ServerCertificateValidationCallback +=
        (sender, certificate, chain, sslPolicyErrors) => true;
70
Michael Skarum

コードを変更するよりも優れたソリューションがあります。理想的には、本番環境で見られる条件をシミュレートするソリューションが必要であり、コードを変更してもそれは行われず、デプロイする前にコードを取り出すのを忘れると危険になる可能性があります。

何らかの自己署名証明書が必要になります。 IIS Expressを使用している場合は、これらのいずれかが既にあります。見つける必要があります。まだない場合は、Firefoxまたは任意のブラウザーを開き、 Webサイトにアクセスすると、URLバーから証明書情報を表示でき、ブラウザーによっては証明書をエクスポートできるはずです。

次に、MMC.exeを開き、証明書スナップインを追加します。証明書ファイルを信頼されたルート証明機関ストアにインポートします。必要なのはこれだけです。

これで、コンピューター全体として、コンピューター自体が生成した証明書が暗黙的に信頼され、これを特別に処理するためのコードを追加する必要がなくなります。本番環境に移行しても、適切な有効な証明書がインストールされていれば機能し続けます。

7
Nigel Thomas

オブジェクトに設定できます

var restClient = new RestClient(baseUrl);
restClient.RemoteCertificateValidationCallback = 
           (sender, certificate, chain, sslPolicyErrors) => true;
6
M. Hamza Rajput