我嘗試使用java applet連接到wss(Secure Websocket)服務器,但ssl握手失敗時沒有任何有用的日誌信息。雖然SSL缺少ServerHelloDone Hanshake
如果我連接到wss://echo.websocket.org握手工作正常,所以我認爲這不是一般的java代碼錯誤。
如果我嘗試連接到我自己的服務器,HelloDone位被髮送(由wireshark驗證),但連接以掛斷方式結束,並且不在日誌中。正常情況下應該在日誌中以下消息:「*** ServerHelloDone」
見「javax.net.debug = SLL」 http://pastebin.com/ZuvKww4J 它不會被截斷,它只是我的Java控制檯日誌在那裏結束。 幾秒鐘後,tcp連接超時消息被添加到日誌中。
我使用的Java代碼下面的例子: https://github.com/TooTallNate/Java-WebSocket/blob/master/src/main/example/SSLClientExample.java
但不是密鑰庫使用:
sslContext.init(null, null, null);
對於服務器我有兩個不同的測試系統:
- 在港口443一ha代理
- 在港口8443一個stunnel。
我試圖用不同的方法隔離錯誤。首先我用stunnel強制使用與echo.websocket.org「SSL_RSA_WITH_RC4_128_SHA」相同的密碼,但沒有成功。
其次我檢查了ssl證書本身是否仍然有效。但是,由於我的java小應用程序的web瀏覽器和普通的https連接,從服務器(同一臺服務器。ha-proxy orstunnel)接受,一切工作都在這一點上。
我最近有這樣的問題。我發佈了一個非常不同的問題,但你可以按照我做的步驟,也許它會幫助你找到根源:http://stackoverflow.com/questions/15544116/sslhandshakeexception-received-fatal-alert-handshake-失敗時設置ciph – Avi
4K RSA。也許一些奇怪的密碼限制? – user1516873
現在我嘗試使用自簽名2048位SHA1withRSA證書(興奮地像echo.websocket.org一樣),但它仍然不起作用。我使用了-keyalg RSA -sigalg SHA1withRSA params。感謝Avi和user1516873 – GreenRover