【问题标题】:How do I fix: SunTls12RsaPremasterSecret KeyGenerator not available如何修复:SunTls12RsaPremasterSecret KeyGenerator 不可用
【发布时间】:2019-02-15 16:17:05
【问题描述】:

我在尝试使用 Javax.mail 创建 SSL 连接时遇到“KeyGenerator not available”错误。

该项目在 3-4 年前就可以运行,它是对 JDK1.8 和新 JRE 的更新。我认为问题在于更新项目的一些基本怪癖。

我已关注Here. 列出的所有内容

我将 JKD1.8.0_131/jre/lib/ext/sunjce_provider.jar 的路径添加到我的项目库中,这样它就在 JRE 库和项目类路径中。

java.security.NoSuchAlgorithmException: SunTls12RsaPremasterSecret KeyGenerator not available
at javax.crypto.KeyGenerator.<init>(KeyGenerator.java:169) ~[?:1.8.0_131]
at javax.crypto.KeyGenerator.getInstance(KeyGenerator.java:223) ~[?:1.8.0_131]
at sun.security.ssl.JsseJce.getKeyGenerator(JsseJce.java:251) ~[?:1.8.0_131]
at sun.security.ssl.RSAClientKeyExchange.<init>(RSAClientKeyExchange.java:78) ~[?:1.8.0_131]
.....

我希望代码此时会创建一个连接。我该怎么做才能解决这个问题?

【问题讨论】:

标签: java email


【解决方案1】:

无论如何,您都应该将 Java 8 更新到当前的补丁级别,但根据 issue,您至少需要补丁级别 192 而不是 131。这对于 OpenJDK 来说是个问题,但对于 Oracle Java 来说似乎是一样。

我假设您的代码正在连接到自您上次使用以来已更新到 TLS 1.2 的服务器。

【讨论】:

  • 201好像又出现了这个问题。谁能确认一下?
【解决方案2】:

不知道为什么,但是这个方法在 eclipse 中帮助了我:https://www.codetd.com/en/article/9438315

首选项 -> 已安装的 JRE -> 编辑您的 java 8 JRE 并“恢复默认值”

【讨论】:

    猜你喜欢
    • 2017-05-05
    • 2011-02-21
    • 2017-05-08
    • 1970-01-01
    • 2017-08-07
    • 1970-01-01
    • 2010-12-05
    • 2015-02-15
    • 2020-02-21
    相关资源
    最近更新 更多