Android和Windows没有相同的TLS算法

时间:2011-08-26 23:18:31

标签: android windows windows-7 ssl

我在充当服务器的Windows 7和充当客户端的Android 2.2之间使用TLS。证书是使用makecert.exe创建的。 SSL套接字创建适用于两端,但服务器端的协商报告两个端点不共享通用算法,因此无法相互通信。

相同的Windows端点与另一个充当客户端的Windows端点一起工作,所以我一般都知道TLS部分有效。有没有办法升级Android(在这种情况下是模拟器)以获得必要的算法?我在一般意义上问。我想现在有人知道如何解决这个问题......至少我希望如此。

2 个答案:

答案 0 :(得分:1)

事实证明,在这个特定的Windows框中,我创建了签名证书而不是数据交换证书。我忘记了makecert.exe命令行工具中的“sky”参数。一旦我修复它就像一个魅力。

感谢所有的回复。我很感激。

答案 1 :(得分:0)

如果您没有使用错误的名称,例如“TLS”而不是“TLSv1”,请下载SpongyCastle并将其注册为提供商:

static {
    Security.addProvider(new org.spongycastle.jce.provider.BouncyCastleProvider());
}

然后得到你的SSLContext:

SSLContext.getInstance("TLS", "SC");

看起来BouncyCastle预装在Android上,但它是一个非常老的版本,算法有限。有人重新打包了新的BouncyCastle以避免ClassLoader问题。