【问题标题】:SSL connection between two Android devices两台 Android 设备之间的 SSL 连接
【发布时间】:2012-10-21 03:50:34
【问题描述】:

我是 SSL 新手。我需要通过 TCP 在两个 Android 设备之间实现 SSL 连接。 有什么例子吗?如何创建 SSLServerSocket?

我尝试设置默认密钥库的属性,以使用 SSLServerSocket

System.setProperty("javax.net.ssl.keyStore", "my_keystore");
System.setProperty("javax.net.ssl.keyStorePassword", "password");

这没有帮助。

我能够创建 SSLServerSocket,但是在 accept() 上它失败并出现以下异常: “SSLException:找不到任何支持启用的密码套件的密钥库条目” 我还在 Android 上使用了正确类型的证书:BKS

提前致谢。

【问题讨论】:

标签: android sockets ssl tcp


【解决方案1】:

这与在任何平台上使用 SSL 套接字没有什么不同,请参阅 JSSE 参考。唯一需要注意的是,您需要将手机放在同一网络上(如果是本地网络),如果使用 3G 等,您的运营商可能会过滤/阻止入站连接。另外请记住,移动设备可以更改其 IP重新连接等时,固定IP可能无法正常工作。

【讨论】:

  • 您好,感谢您的回复。还有一个问题。当我使用 SSLServerSocket.accept() 时,我收到异常“SSLException:找不到任何密钥存储条目来支持启用的密码套件”。据我所知,我需要加载证书并初始化 SSLContext。在 Android 中如何实现?
  • Android 不支持这些系统属性。您需要在代码中加载密钥库文件。有关详细信息,请参阅 JSSE 教程。