我正在嘗試與Java Web服務交談時嘗試使用我的WCF服務。IIS -WCF 4.0調用Java(無法建立SSL/TLS的安全通道)
我有一個ASP.Net MVC前端通過HTTP與WCF服務通話。然後WCF服務通過使用證書的相互認證通過HTTPS與JAVA Web服務對話。問題是目前在WCF服務改掉調用JAVA後臺,我收到以下錯誤:
Could not establish secure channel for SSL/TLS
在Java方面,我運行JBoss,與SSL3和TLS密碼僅用於SSL。我有這個目的的錯誤是:
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。該服務運行.net 4. (我應該指出的一件事是,我的consle應用程序運行.Net v3.5而不是v4。)
我已經涉足了一些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
沒有人有哪裏開始什麼想法?
由於提前, 尼克
[更新]
我現在得到以下錯誤在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.
...但我不一定要解決它。證書正在被這個外觀拾起。它只是無法獲得密碼。