【问题标题】:Cannot connect chrome to HttpsServer无法将 chrome 连接到 HttpsServer
【发布时间】: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 证书?

标签: java ssl java-8 tls1.2


【解决方案1】:

我使用以下命令创建了证书:

keytool -genkey -keystore server.jks -dname -storepass storepass -alias server-test -keypass serverpass

在 java 8 上。默认情况下使用 DSA 算法。添加 -keyalg RSA 选项解决了这个问题!

【讨论】:

    猜你喜欢
    • 2013-01-14
    • 1970-01-01
    • 2022-06-22
    • 2018-09-20
    • 1970-01-01
    • 1970-01-01
    • 2018-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多