如何保護普通套接字通信?我寫了一個只能連接到專用SSL端口(5223)的Jabber客戶端(使用SSLSocket)。正常的方法是連接到Jabber標準端口5222並請求starttls
。我怎樣才能做到這一點?如何通過普通Java套接字實現(SSL/TLS)安全通信
回答
我不能完全確定你所問的,但你可以通過使用SSLSocketFactory.createSocket()方法層上的現有的普通(非安全)插座安全套接字。這是使用類似starttls的方式「升級」套接字的一種方法。但這是艱難的做法。幾乎可以肯定,你的XMPP庫將提供對這種功能的高級訪問。
好的。讓我嘗試一下。我正在嘗試編寫我自己的庫。 – Bijoy 2012-01-15 22:51:58
@Bijoy:你真的說你想要實現你自己的SSL/TLS庫嗎(即使JRE中有一個爲你提供的:JSSE)?這有點像你的標題聽起來像。不過,你可能也不會要求對SO,如果這是你真正想做的事,你只是經過的RFC(在這種情況下,運氣好的話...)。如果您只想編寫自己的XMPP庫並將普通TCP套接字升級到SSL/TLS套接字,請使用Gregs的建議。 – Bruno 2012-01-15 23:45:57
啊,對不起。通信錯誤,我完全想要編寫我自己的XMPP庫而不是SSL/TLS庫。 – Bijoy 2012-01-16 04:39:01
期望管理:我沒有用Jabber試過這個。但是,它的工作原理Gmail的SMTP服務器,所以也許......
這裏是如何的插座升級到SSL插座,其中socket
是原始(非TLS)連接:
SSLSocket sslSocket = (SSLSocket) ((SSLSocketFactory) SSLSocketFactory.getDefault()).createSocket(
socket,
socket.getInetAddress().getHostAddress(),
socket.getPort(),
true);
InputStream inputStream = sslSocket.getInputStream();
OutputStream outputStream = sslSocket.getOutputStream();
// reads from the socket
Scanner scanner = new Scanner(inputStream);
// writes to the socket
OutputStream outputStream = new BufferedOutputStream(outputStream);
- 1. 通過Java套接字的InterServer通信
- 2. 通過套接字的Java TCP通信
- 3. 套接字通信安全問題
- 4. android中的安全套接字通信
- 5. 如何通過JavaScript通過TCP套接字進行通信?
- 6. 套接字通信?
- 7. 如何通過ECPublicKey通過java中的套接字
- 8. Java SSL套接字和普通套接字
- 9. 如何通過Clozure Common Lisp中的套接字進行通信?
- 10. 如何在Android 4.0.3中通過套接字進行通信
- 11. 如何讓iPhone通過套接字與服務器通信?
- 12. C++如何實現進程間套接字通信?
- 13. 雙向JSON-RPC通過TCP套接字Java實現
- 14. 通過套接字
- 15. Java套接字編程,雙向通信
- 16. Java和PHP套接字通信問題
- 17. C#<-> Java套接字通信
- 18. Java套接字通信 - 提高速度
- 19. 提高java套接字通信速度
- 20. 使用NIO的Java套接字通信
- 21. java中的套接字通信
- 22. Java和JavaScript套接字通信
- 23. 如何在Java中使用套接字通信實現流量控制?
- 24. 普通HTTP GET和POST通信的安全數據序列化
- 25. 通過套接字連接Python和Java
- 26. 通過WiFi連接Java套接字?
- 27. 通訊通過套接字連接:
- 28. 如何使套接字通信?
- 29. 套接字通信錯誤
- 30. CFStream IOS套接字通信
你嘗試過什麼?而不是聽起來很愚蠢,但你有沒有檢查他們是你試圖連接到服務器的SSL服務器實施。我不使用jabber,所以我不知道。如果沒有服務器運行SSL連接,那麼您的SSL客戶端是浪費時間! – 2012-01-15 22:24:05
Google在talk.google.com上有5223個端口,但每個服務器中的大多數都爲我們提供了傳統的starttls方法。我不知道如何在請求啓用TLS之後保護通信。 – Bijoy 2012-01-15 22:30:11
在java中創建SSL套接字與驗證類似於創建標準套接字。你能提供一些代碼以及你所得到的錯誤信息嗎? – 2012-01-15 22:32:15