2014-09-03 75 views
1

更新(此問題已解決):我已更新此問題中的代碼以包含現在可用的代碼,隨時在您自己的作品中使用它(代碼示例有去過模式pastbins爲簡單起見)檢測SSL連接並將套接字轉換爲SSLSocket

下午好StackOverflow上,

所以,在過去的一天,或者我一直在努力,有一個網絡接口的服務器軟件,我一直在試圖建立處理HTTPS連接。我得到了它的正常工作和每一件事情,但現在我想處理一個TCP端口上的HTTP和HTTPS連接。

我有代碼可以檢測到SSL/TLS ClientHello消息,問題是試圖將疼痛文本套接字轉換爲SSLSocket一旦檢測到消息,在我正在使用的代碼中的波紋管。

WebServer.java - >http://pastebin.com/JSjNpC2Y

SecurityTools.java - >http://pastebin.com/Q8yVLNp7

BufferedSocket.java - >http://pastebin.com/SuWB8P7r

BufferedSocketServer.java - >http://pastebin.com/Nr7MrhEH

當我與HTTP沒有連接在一切發生,甚至不是一個錯誤或異常是拋出,當我連接HTTPS時,我得到以下集異常(我鏈接到糊箱,以節省空間,在這個崗位)

http://pastebin.com/MirTqVpj

任何及所有幫助和建議,歡迎。

感謝您的幫助!

回答

2

重置您自己的輸入流不會影響底層套接字。你需要爲Socket類創建你自己的包裝器,它返回一個可標記的輸入流。然後,你需要的,如果它是SSL可以重置流和您的包裝傳遞給SSLSocketFactory的。否則,它不會看到您所看到的客戶問候。

+0

這樣很有效!感謝您的幫助,永遠不會考慮嘗試。 – 2014-09-03 06:54:11

+0

你能分享最終的代碼嗎? – weima 2018-01-16 13:04:54