2012-03-30 8 views
1

私はクライアント証明書を持っていますが、発行者である公開鍵CAを取得できません。証明書MMCで表示すると、Windowsは発行者を確認できません。証明書を必要とする外部Java Webサービスと通信する必要があります。欠落しているCAでクライアント証明書を使用して外部Webサービスと通信するにはどうすればよいですか?

私はバインディングを通じて証明書を利用したサンプルコンソールアプリケーションを作成しました。これは完全に動作します。私は今、その構成とコードをIISホストのWCF Webサービスに移行しています。私は、エラーを乗り越えるように見えることができないでバリケードを打っています

Could not establish trust relationship for the SSL/TLS secure channel with authority '[url]'

2つのアプリケーション間の唯一の違いは、それが実行されているドメイン内にあるように見えます。私は問題が私の側でクライアント証明書を検証することであり、外部Javaサービスとの接続を試みていないと確信しています。私は既に公開鍵CAを要求しているので、これを回避する最善の方法は何ですか?

この機能を有効にするには、WCFまたは調整するIISの検証を無効にすることはできますか?

答えて

1

だろう。

私は、証明書ファイルに読み取りアクセス許可を設定します。

C:\Documents and Settings\all users\Application Data\Microsoft\Crypto\RSA\MachineKeys 

、それは私の問題を解決しました。

0

ServicePointManager.ServerCertificateValidationCallbackにコールバックを追加することでチェックを無効にすることができます。最も簡単なコールバックは壁に頭を強打し、私はこれへのアクセスを必要とする秘密鍵証明書ファイルおよびIISについてのポストに出くわしたスタックトレースのキーワードを検索した後

static void Main() 
{ 
    ServicePointManager.ServerCertificateValidationCallback = ValidateRemoteCertificate; 

    // ... 
    Application.Run(new MyForm()); 
} 

private static bool ValidateRemoteCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) 
{ 
    return true; 
} 
+0

私は無駄にしようとしました。あなたのソリューションは、私が接続しているサービスのサーバー証明書の問題を解決すると思います。私の問題は、クライアント証明書とIISが接続を許可する前にそれを検証しようとしていると思います。 – James

関連する問題