java.security.cert.CertificateParsingException:java.io.IOException:未知命名曲线:1.3.132.0.38

java.security.cert.CertificateParsingException: java.io.IOException: Unknown named curve: 1.3.132.0.38

我正在将应用程序从 JDK8 迁移到 OpenJDK 11。但是,在使用新版本构建应用程序时,我缺少一些椭圆曲线:

java.security.cert.CertificateParsingException: Caused by: java.io.IOException: Unknown named curve: 1.3.132.0.38
    at java.base/sun.security.util.ECParameters.engineInit(ECParameters.java:141)
    at java.base/java.security.AlgorithmParameters.init(AlgorithmParameters.java:312)
    at java.base/sun.security.x509.AlgorithmId.decodeParams(AlgorithmId.java:137)
    at java.base/sun.security.x509.AlgorithmId.<init>(AlgorithmId.java:119)
    at java.base/sun.security.x509.AlgorithmId.parse(AlgorithmId.java:384)
    at java.base/sun.security.x509.X509Key.parse(X509Key.java:168)
    at java.base/sun.security.x509.CertificateX509Key.<init>(CertificateX509Key.java:75)
    at java.base/sun.security.x509.X509CertInfo.parse(X509CertInfo.java:674)
    at java.base/sun.security.x509.X509CertInfo.<init>(X509CertInfo.java:169)

所以我假设 OpenJDK 没有(或如此)许可证将这个椭圆曲线包含在他们的包中。 添加 JCE 并没有改变任何东西。我也尝试在应用程序中添加 BouncyCastle 作为依赖项,但这也无助于缓解问题。

我看到它在 OpenJDK 中被标记为一个错误,但还没有发现它是否已被修复。 有没有人找到任何解决方法来解决这个问题?

后来的回应:我的问题是由包含 RSA 和 EC 密钥的密钥库引起的。 删除 EC 密钥 and/or 仅用 RSA 密钥替换它们解决了这个问题。