【发布时间】:2010-09-23 16:39:21
【问题描述】:
我正在尝试通过 SSL 创建从 android 客户端到服务器的 SSL 连接。 一开始我总是得到 p>
javax.net.ssl.SSLHandshakeException:服务器上没有共同的密码套件
尝试连接时。
经过一番调查,我意识到 Android 使用 Bouncy Castle SSL 实现,并且那里的密码套件与 SUN 提供的不同。所以我在服务器上添加了 Bouncy Castle 提供程序。原来的问题消失了,但我现在得到了
线程“main”中的异常 javax.net.ssl.SSLHandshakeException: NO SERVER CERTIFICATE FOUND
我不确定我为什么会得到这个。我已经生成了证书。当然,我使用 JKS 来存储它,但它为什么重要呢?只是一种存储格式,证书应该是一模一样的。
如果有人使用 SSL 在 Android 上完成了非 HTTP 客户端服务器编程,我将非常感谢任何关于我需要做什么的指针。
【问题讨论】:
-
将 BouncyCastle 提供程序添加到服务器不应改变任何内容。归根结底,交换的密码套件标识符与用于其配置的名称无关。听起来您的服务器证书可能配置不正确。
-
支持的密码套件不可能完全不同。 RFC 2246 规定了所有实现都必须支持的大量必需的密码套件。