当前位置: 首页 > 知识库问答 >
问题:

java.security.算法x25519不可用

潘国源
2023-03-14

我得到了这段代码的“javax.net.ssl.SSLException:连接重置”

ReadableByteChannel rbc = Channels.newChannel(url.getInputStream());

但仅当在使用Open JDK 14中的jlink构建的Java14 JRE下运行时。如果我指向完整的JDK,代码执行得很好。我怀疑JRE中缺少一些东西,但它是什么,为什么jlink没有复制丢失的文件?我基于jdeps的jlink命令如下:

"C:\Program Files\Java\jdk-14\bin\jlink.exe" --no-header-files --no-man-pages --compress=2 --strip-debug --add-modules java.base,java.datatransfer,java.desktop,java.logging,java.xml --output %AG14InstallDir%\jre_windows2

jlink中是否缺少模块?关于如何追踪此事,有什么想法或建议吗?

按照建议添加调试之后,我得到了这个输出。我需要复制什么来修复它?

javax.net.ssl|WARNING|2E|Thread-13|2020-06-07 10:22:24.517 UTC|null:-1|Signature algorithm, ed25519, is not supported by the underlying providers
javax.net.ssl|WARNING|2E|Thread-13|2020-06-07 10:22:24.518 UTC|null:-1|Signature algorithm, ed448, is not supported by the underlying providers
javax.net.ssl|WARNING|2E|Thread-13|2020-06-07 10:22:24.519 UTC|null:-1|No AlgorithmParameters for x25519 (
"throwable" : {
  java.security.NoSuchAlgorithmException: Algorithm x25519 not available
    at java.base/javax.crypto.KeyAgreement.getInstance(Unknown Source)
    at java.base/sun.security.ssl.NamedGroup.<init>(Unknown Source)
    at java.base/sun.security.ssl.NamedGroup.<clinit>(Unknown Source)
    at java.base/sun.security.ssl.SignatureScheme.<clinit>(Unknown Source)
    at java.base/sun.security.ssl.SSLSessionImpl.<clinit>(Unknown Source)
    at java.base/sun.security.ssl.TransportContext.<init>(Unknown Source)
    at java.base/sun.security.ssl.TransportContext.<init>(Unknown Source)
    at java.base/sun.security.ssl.SSLSocketImpl.<init>(Unknown Source)
    at java.base/sun.security.ssl.SSLSocketFactoryImpl.createSocket(Unknown Source)
    at java.base/sun.net.www.protocol.https.HttpsClient.createSocket(Unknown Source)
    .............

共有1个答案

丁理
2023-03-14

已解决。需要添加jdk。加密。cryptoki到jlink中的--添加模块列表。

 类似资料:
  • 问题内容: 看下面的java行: 如果将其放在一个简单的测试程序中,则它可以在服务器上正常运行。但是,如果我在容器中使用此行,则会得到 两种情况下都使用相同的JDK安装。 搜寻了一下之后,我通过做两件事设法使其工作: 从复制到容器的lib目录。 在我的代码中添加以下行: 具体来说,这是我在Apache James 邮箱中发生的,但是我很确定这与JVM选项有关。这是它使用的启动脚本。 尽管我最终使它

  • 我有java 1.4版本的代码,我们有一个新的要求,比如从另一个webservice响应中解密密码,因此必须使用AES 256解密,得到以下异常: 我试图将jce\U policy\u 1-4版本JAR复制到java home security文件夹中,但仍遇到上述异常 Java 1.4中是否有不更改为1.5的解决方案,因为运行jboss server 3.2.3版将不支持Java 1.5。

  • 我正在使用和 我部署了我的Web应用程序,我得到了以下错误 请帮助我如何解决这个问题。 提前谢谢。这是一个非常重要的问题。 谢谢kalasagar

  • 我禁用了MD5算法,使用在文件中添加以下内容。但是我仍然能够运行使用MD5算法的代码。 但是我仍然能够运行以下使用MD5的代码

  • 在JDK 8中,默认情况下禁用SSLv3,启用TLSv1.2。 当我谷歌我发现很多的帖子SSLv3是通过注释出文件中的lib文件夹。 我想在不修改java安装的情况下,通过设置系统属性来启用SSLv3。

  • 你将如何解决这个问题? 你从一个盒子开始,盒子里有x个红色大理石,y个绿色大理石和z个蓝色大理石,盒子外还有无限量的红色、绿色和蓝色大理石。一个步骤是选择两种不同的颜色,从盒子中取出两个大理石(两种颜色各一个),然后从你的供应中向盒子中添加第三种颜色的大理石。例如,如果你选择红色和绿色,那么你移除一个红色和一个绿色的大理石,然后放回一个蓝色的。对于什么样的起始条件(表示为x、y、z上的约束),通过