2011-12-20 3 views
0

Java Webサービスと通信しようとしているWCFサービスで少し問題が発生しています。IIS-WCF 4.0 Javaを呼び出す(SSL/TLSのセキュリティで保護されたチャネルを確立できませんでした)

HTTP経由でWCFサービスと通信しているASP.Net MVCフロントエンドがあります。 WCFサービスは、証明書の相互認証を利用してHTTPSを介してJava Webサービスと通信します。 Java側で

Could not establish secure channel for SSL/TLS 

、私はSSLのためSSL3およびTLS暗号で、JBOSSを実行しています:問題は現在、WCFサービスは、JAVAのバックエンドを呼び出すためにtrysとき、私は、次のエラーを取得していますということです。私はその端に持ってエラーがある:

21:49:48,701 INFO [STDOUT] http-0.0.0.0-8543-2, WRITE: TLSv1 Handshake, length = 1514 
21:49:49,499 INFO [STDOUT] http-0.0.0.0-8543-2, received EOFException: error 
21:49:49,499 INFO [STDOUT] http-0.0.0.0-8543-2, handling exception: javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake 
21:49:49,507 INFO [STDOUT] http-0.0.0.0-8543-2, SEND TLSv1 ALERT: fatal, description = handshake_failure 
21:49:49,507 INFO [STDOUT] http-0.0.0.0-8543-2, WRITE: TLSv1 Alert, length = 2 
21:49:49,507 INFO [STDOUT] http-0.0.0.0-8543-2, called closeSocket() 
21:49:49,508 INFO [STDOUT] http-0.0.0.0-8543-2, called close() 

私は本命の相互認証を使用していると、コールの私の最初のポートは悪い証明し​​ました。だから私はサービスwsdlページ(また証明書の認証が必要)を開いて、すべてが大丈夫です。私の証明書はきれいで信頼できます。

私は、証明書がサービスコールを受けていない可能性があると考え始めました。そこで、同じ証明書を使ってJavaサービスを呼び出すコンソールアプリケーションを作成しました(設定ファイルのエンドポイント動作を参照)。これはうまく動作し、サービス応答データが画面に表示されます。

私は、IISにSSLチャネルを開くのを止める何かがあると思っています。これは本当にちょっとした助けが必要なところです。

私のIISは、Windows Server 2008 R2上で動作するバージョン7.0です。サービスは、(私が指摘しなければならないことの一つは、私のconsleアプリは、.NET V3.5ないV4を実行していたということでした。)の.Net 4 上で実行されている

を私はSCHANNEL設定で少し手を出したが、ドン」していますどの設定を有効にするか、どの設定を無効にするかは本当に分かりません。 は、現在、私がしている:私も持っている

TLS 1.0/Server/Enabled = 1 
SSL 3.0/Server/Enabled = 1 
SSL 2.0/Server/Enabled = 1 
PCT 1.0/Server/Enabled = 1 

SSL 2.0/Client/DisabledByDefault = 0 

誰もが開始する場所上の任意のアイデアを持っていますか?事前に

おかげで、 ニック

[UPDATE]

は現在、Windowsのエラーログに次のエラーを取得しています:

A fatal error occurred when attempting to access the SSL client credential private key. 
The error code returned from the cryptographic module is 0x8009030d. 
The internal error state is 10003. 

...しかし、私はありませんそれを解決するようにしてください。証明書はこれで見ればOKです。パスワードを取得できません。

答えて

1

[回答]

それは私のIIS_IUSRSアカウントの証明書のpriviledgesが設定されていないことが判明。

これらを設定すると、すべて正常に機能しました。

関連する問題