尝试使用Javax.mail创建SSL连接时遇到“ KeyGenerator不可用”错误。
该项目在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]
.....
我期望代码在这一点上创建一个连接。我该怎么办才能解决此问题?
答案 0 :(得分:0)
无论如何,您都应该将Java 8更新到当前的补丁程序级别,但是根据此issue,您至少需要补丁程序级别192而不是131。这对于OpenJDK是一个问题,但是对于Oracle Java来说似乎是一样。
我假设您的代码正在连接到自您上次使用以来已更新为TLS 1.2的服务器。
答案 1 :(得分:0)
不知道为什么,但是这种方法在日食方面对我有帮助:https://www.codetd.com/en/article/9438315
首选项->已安装的JRE->编辑Java 8 JRE和“恢复默认值”