Java Android客户端通过SSL连接到服务器

Java Android客户端通过SSL连接到服务器,java,android,ssl,sun,Java,Android,Ssl,Sun,我正在尝试通过SSL创建从android客户端到服务器的SSL连接。 一开始,我总是 javax.net.ssl.SSLHandshakeException:服务器上没有通用的密码套件 当尝试连接时 经过一些调查,我意识到Android使用Bouncy Castle SSL实现,那里的密码套件与SUN提供的不同。因此,我将Bouncy Castle provider添加到服务器。原来的问题消失了,但我现在明白了 线程“main”javax.net.ssl.SSLHandshakeExceptio

我正在尝试通过SSL创建从android客户端到服务器的SSL连接。 一开始,我总是

javax.net.ssl.SSLHandshakeException:服务器上没有通用的密码套件

当尝试连接时

经过一些调查,我意识到Android使用Bouncy Castle SSL实现,那里的密码套件与SUN提供的不同。因此,我将Bouncy Castle provider添加到服务器。原来的问题消失了,但我现在明白了

线程“main”javax.net.ssl.SSLHandshakeException中出现异常:未找到服务器证书

我不知道为什么我会得到这个。我已经生成了证书。虽然我使用JKS来存储它,但这又有什么关系呢?它只是一种存储格式,证书应该完全相同


如果有人使用SSL在Android上进行过非HTTP客户机-服务器编程,我将非常感谢任何关于我需要做什么的建议。

当我得到这个建议时,原因是服务器没有加载正确的服务器证书。因此,请仔细检查您的服务器是否确实提供了证书。

将BouncyCastle提供程序添加到服务器不会改变任何内容。最终,交换的密码套件标识符与用于其配置的名称无关。听起来您的服务器证书可能配置不正确。支持的密码套件不能完全不同。RFC2246要求所有实现都必须支持大量必需的密码套件。