如何保护普通套接字通信?我写了一个只能连接到专用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