【发布时间】:2018-08-19 13:59:43
【问题描述】:
我已经安装了带有自签名证书的简单 HttpsServer。 此外,“JCE Unlimited Strength Jurisdiction Policy”文件与 Bouncy Castle 安全提供程序一起安装。
一个简单的客户端成功连接到服务器,但我的 chrome 浏览器无法连接。
来自服务器日志:
SSLHandshakeException:没有共同的密码套件
我检查了浏览器和服务器上的密码套装,它们确实没有共同的套装。
有人知道如何解决这个问题吗?
PS。我检查了 JCE 无限策略是否已安装并且 Bouncy castle 也已安装。 使用 VM 选项启动服务器 -Djavax.net.debug=ssl -Dhttps.protocols=TLSv1.1,TLSv1.2
【问题讨论】:
-
如果您使用的是“正确的”Java 版本,则不再需要 JCE 无限强度策略:stackoverflow.com/a/39889731/150978 如果是公共服务器,请使用 ssllabs.com 测试支持的密码。
-
@Robert 这是一个服务器,在本地启动。我得到了服务器和浏览器支持的所有密码套装。密码套装没有任何共同点。这就是问题
-
使用最新的 Java 8 或 9 JRE/JDK 然后应该有 chrome 支持的密码。
-
@Robert 已更新到最新的 Java 8 版本 1.8.0_162,但 google chrome 浏览器不支持密码套件。
-
那么使用的服务器完全有缺陷。或者你配置错误。来自普通 JRE 1.8.0_161 的 SSLServerSocket 支持许多 Chrome 也支持的密码套件。您使用 EC 还是 RSA 证书?