2009-10-21 81 views
11

証明書を使用して認証するWebサービスメソッドを呼び出すC#アプリケーションがあります。 コードは、サーバーA(プロキシなし)にインストールされたときに認証されるため動作します。SSL/TLSセキュアチャネルを作成できませんでした - 問題はプロキシサーバですか?

クライアントサイトのサーバーBにコードをインストールすると、プロキシの背後にインストールされます。私は実際にほとんどすべてを試みたが、私はこのエラーを取得しておいてください。

この問題は、プロキシサーバーが原因で発生することができますと思いますかSSL/TLSのセキュリティで保護されたチャネルを作成できませんでしたか?あなたはこれを個人的な経験があった場合、共有してください。

おかげ

答えて

15

私の経験では、そのようなメッセージのほとんどは何らかの理由で証明書を「好き」にしていないチェーン(クライアント、プロキシ、サーバー)のマシンが原因です。

自己署名証明書または自分のCAを使用している場合は、少なくとも署名証明書をサーバーの信頼できる機関ストアにインストールする必要があります。私が遭遇した

一般的な問題:

  • サーバー上の証明書がプロキシまたはクライアントが認証局によって署名されていない
  • クライアント上の証明書を信頼する認証局によって署名されていないこと私は、クライアントにインストールする証明書を作成したときPROXYまたはサーバ信託
  • おっと、私は秘密キーをエクスポートするのを忘れ
  • 私のプロセスは、クライアント上の秘密鍵にアクセス権を読んだことがありません
  • クライアント証明書はパスワードで保護されているため、証明書を読むときに資格情報を指定しませんでした。
5

あなたの証明書が信頼されていない場合(自己署名されている)その後、C#クライアントが接続を拒否します。

+1

+1、良い点ですが、この証明書は支払われ、署名されています。 –

+0

Verisign(またはThawteなど)から証明書を購入できますが、Verisignの署名キーが「信頼されたルート証明機関」キーストアにない限り、信頼されません。現在、ほとんどの主要なCAの場合、署名鍵はすでに存在しています。しかし、それは保証ではありません。間違いなくチェックしてください! 少なくとも、証明書マネージャをロードしてキーをダブルクリックし、[証明書パス]タブに移動し、[この証明書は問題ありません]と表示されていることを確認します。また、クライアント側では、「一般」タブの「この証明書に対応する秘密鍵があります」も参照する必要があります。 –

6

私は同じ問題を抱えていました。私の場合、証明書にはネットワークサービスへのアクセスが必要です。あなたは、コンテキストメニューから[...プライベートキーの管理>

  • が右証明書をクリックして証明書(ローカルコンピュータ)]> [パーソナル]> [証明書]に

    1. を開き、証明書MMC
    2. 移動によりチェックし、すべてのタスクを選択することができます
    3. 適切な許可を設定してください
  • +1

    はい!私は同じ問題を抱えていて、これが私のために解決しました。ありがとう、ありがとう、ありがとう! –

    関連する問題