2012-05-01 81 views
44

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

私は今、リクエストを行うと、私はエラーを取得する:

私が使用して終了:

ServicePointManager.ServerCertificateValidationCallback += 
      (sender, certificate, chain, sslPolicyErrors) => true; 
事前

/マイケル・

アップデートで

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

感謝を

+1

答えはここにありますが、私の電話から実際のものに変えることはできません。http://www.west-wind.com/weblog/posts/2011/Feb/11/HttpWebRequest-and-Ignoring- SSL証明書のエラー –

+0

素晴らしい - 私は答えで質問を更新しました。しかし、本当の答えを投稿して受け入れます:-) –

+4

一般に、証明書の検証を完全に無視するのではなく、テストクライアントの信頼アンカーでテスト証明書をインポートする方が良いです。まず、より現実的です。第二に、この種の安全でないコードを最終製品に残さないようにします。 – Bruno

答えて

51

Johnが提案した通り:

ServicePointManager.ServerCertificateValidationCallback += 
     (sender, certificate, chain, sslPolicyErrors) => true; 
+3

働いていますが、それはグローバルな振る舞いを設定していると考えてもそれほど大したことではありません。 – talles

4

コードを変更するよりも優れた解決策があります。理想的には、本番環境で見られる条件をシミュレートし、コードを変更することはできませんし、コードを展開する前にコードを外すのを忘れてしまうと危険になる可能性があるソリューションが理想的です。

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

次に、MMC.exeを開き、証明書スナップインを追加します。証明書ファイルを信頼されたルート証明機関にインポートしてください。

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

+0

申し訳ありませんが、ちょうどうまく機能する以前のソリューションとは異なり、あまりにも難しいです。私は証明書の専門家ではない。 –

+0

私のRestSharp Restクライアントは、有効な証明書がないRESTサービス(サードパーティ/外部/外部)へのアクセスを試行します。また、あなたが書いているように、ブラウザからエクスポートできる証明書もありません。私はそのサイト/サービスの証明書を購入する可能性はない。それは私のものではないから、私はちょうど間違いなくそこからいくつかのjsonデータを受け取りたい。 –

関連する問題