java.security.InvalidAlgorithmParameterException:null

java.security.InvalidAlgorithmParameterException:null,java,spring,ssl,tls1.2,Java,Spring,Ssl,Tls1.2,我在尝试使用SSL证书运行Spring启动应用程序时遇到了此异常。该应用程序作为Docker容器在Kubernetes内部运行 关键问题是对expetion的描述是null 有人遇到过这样的问题吗 更新1-我的Dockerfile基于。我已经回复了 回到openjdk:8u111 jre-alpine并消除错误。我仍然不知道错误的原因是什么 java.lang.RuntimeException: java.security.InvalidAlgorithmParameterException

我在尝试使用SSL证书运行Spring启动应用程序时遇到了此异常。该应用程序作为Docker容器在Kubernetes内部运行

关键问题是对expetion的描述是null

有人遇到过这样的问题吗

更新1-我的Dockerfile基于。我已经回复了 回到
openjdk:8u111 jre-alpine
并消除错误。我仍然不知道错误的原因是什么

java.lang.RuntimeException: java.security.InvalidAlgorithmParameterException
        at sun.security.ssl.Handshaker.checkThrown(Handshaker.java:1476) ~[na:1.8.0_121]
        at sun.security.ssl.SSLEngineImpl.checkTaskThrown(SSLEngineImpl.java:535) ~[na:1.8.0_121]
        at sun.security.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:813) ~[na:1.8.0_121]
        at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:781) ~[na:1.8.0_121]
        at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:624) ~[na:1.8.0_121]
        at org.apache.tomcat.util.net.SecureNioChannel.handshakeUnwrap(SecureNioChannel.java:459) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
        at org.apache.tomcat.util.net.SecureNioChannel.handshake(SecureNioChannel.java:232) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1387) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-8.5.6.jar!/:8.5.6]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_121]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_121]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.5.6.jar!/:8.5.6]
        at java.lang.Thread.run(Thread.java:745) [na:1.8.0_121]
Caused by: java.security.ProviderException: java.security.InvalidAlgorithmParameterException
        at sun.security.ec.ECKeyPairGenerator.generateKeyPair(ECKeyPairGenerator.java:147) ~[sunec.jar:1.8.0_121]
        at java.security.KeyPairGenerator$Delegate.generateKeyPair(KeyPairGenerator.java:703) ~[na:1.8.0_121]
        at sun.security.ssl.ECDHCrypt.<init>(ECDHCrypt.java:65) ~[na:1.8.0_121]
        at sun.security.ssl.ServerHandshaker.setupEphemeralECDHKeys(ServerHandshaker.java:1431) ~[na:1.8.0_121]
        at sun.security.ssl.ServerHandshaker.trySetCipherSuite(ServerHandshaker.java:1229) ~[na:1.8.0_121]
        at sun.security.ssl.ServerHandshaker.chooseCipherSuite(ServerHandshaker.java:1026) ~[na:1.8.0_121]
        at sun.security.ssl.ServerHandshaker.clientHello(ServerHandshaker.java:741) ~[na:1.8.0_121]
        at sun.security.ssl.ServerHandshaker.processMessage(ServerHandshaker.java:224) ~[na:1.8.0_121]
        at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1026) ~[na:1.8.0_121]
        at sun.security.ssl.Handshaker$1.run(Handshaker.java:966) ~[na:1.8.0_121]
        at sun.security.ssl.Handshaker$1.run(Handshaker.java:963) ~[na:1.8.0_121]
        at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_121]
        at sun.security.ssl.Handshaker$DelegatedTask.run(Handshaker.java:1416) ~[na:1.8.0_121]
        at org.apache.tomcat.util.net.SecureNioChannel.tasks(SecureNioChannel.java:407) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
        at org.apache.tomcat.util.net.SecureNioChannel.handshakeUnwrap(SecureNioChannel.java:467) ~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
        ... 7 common frames omitted
Caused by: java.security.InvalidAlgorithmParameterException: null
        at sun.security.ec.ECKeyPairGenerator.generateECKeyPair(Native Method) ~[sunec.jar:1.8.0_121]
        at sun.security.ec.ECKeyPairGenerator.generateKeyPair(ECKeyPairGenerator.java:128) ~[sunec.jar:1.8.0_121]
        ... 21 common frames omitted
java.lang.RuntimeException:java.security.invalidalgorithParameterException
在sun.security.ssl.Handshaker.checkshown(Handshaker.java:1476)~[na:1.8.0\u 121]
在sun.security.ssl.SSLEngineImpl.checktaskshorn(SSLEngineImpl.java:535)~[na:1.8.0\u 121]
在sun.security.ssl.sslenginempl.readNetRecord(sslenginempl.java:813)~[na:1.8.0\u 121]
在sun.security.ssl.sslenginimpl.unwrap(sslenginimpl.java:781)~[na:1.8.0\u 121]
在javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:624)~[na:1.8.0\u 121]
在org.apache.tomcat.util.net.SecureNioChannel.handshakeeunwrap(SecureNioChannel.java:459)~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
在org.apache.tomcat.util.net.SecureNioChannel.handshake(SecureNioChannel.java:232)~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
在org.apache.tomcat.util.net.niodendpoint$SocketProcessor.doRun(niodendpoint.java:1387)~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
在org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)[tomcat-embed-core-8.5.6.jar!/:8.5.6]
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[na:1.8.0_121]
在java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[na:1.8.0_121]
在org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)[tomcat-embed-core-8.5.6.jar!/:8.5.6]
在java.lang.Thread.run(Thread.java:745)[na:1.8.0_121]
原因:java.security.ProviderException:java.security.InvalidalgorithParameterException
在sun.security.ec.ECKeyPairGenerator.generateKeyPair(ECKeyPairGenerator.java:147)~[sunec.jar:1.8.0121]
在java.security.KeyPairGenerator$Delegate.generateKeyPair(KeyPairGenerator.java:703)~[na:1.8.0121]
在sun.security.ssl.ECDHCrypt.(ECDHCrypt.java:65)~[na:1.8.0_121]
在sun.security.ssl.ServerHandshaker.setupEphemeralECDHKeys(ServerHandshaker.java:1431)~[na:1.8.0_121]
在sun.security.ssl.ServerHandshaker.trysetciphorsuite(ServerHandshaker.java:1229)~[na:1.8.0\u 121]
在sun.security.ssl.ServerHandshaker.chooseCipherSuite(ServerHandshaker.java:1026)~[na:1.8.0\u 121]
在sun.security.ssl.ServerHandshaker.clientHello(ServerHandshaker.java:741)~[na:1.8.0\u 121]
在sun.security.ssl.ServerHandshaker.processMessage(ServerHandshaker.java:224)~[na:1.8.0\u 121]
在sun.security.ssl.Handshaker.processLoop(Handshaker.java:1026)~[na:1.8.0\u 121]
在sun.security.ssl.Handshaker$1.run(Handshaker.java:966)~[na:1.8.0\u 121]
在sun.security.ssl.Handshaker$1.run(Handshaker.java:963)~[na:1.8.0\u 121]
在java.security.AccessController.doPrivileged(本机方法)~[na:1.8.0_121]
在sun.security.ssl.Handshaker$DelegatedTask.run(Handshaker.java:1416)~[na:1.8.0\u 121]
在org.apache.tomcat.util.net.SecureNioChannel.tasks(SecureNioChannel.java:407)~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
在org.apache.tomcat.util.net.SecureNioChannel.handshakeeunwrap(SecureNioChannel.java:467)~[tomcat-embed-core-8.5.6.jar!/:8.5.6]
... 省略了7个公共框架
原因:java.security.invalidalgorithParameterException:null
在sun.security.ec.ECKeyPairGenerator.generateECKeyPair(本机方法)~[sunec.jar:1.8.0121]
在sun.security.ec.ECKeyPairGenerator.generateKeyPair(ECKeyPairGenerator.java:128)~[sunec.jar:1.8.0121]
... 省略21个公共帧

我在docker openjdk的github上为此打开了一个问题,而这似乎是一个关于中支持的Elipic曲线的问题 openjdk/jdk/src/share/classes/sun/security/ssl/supportedelliticcurvesextension.java


修复程序被合并到openjdk alpine的8.131.11-r2中

并不是一个实际的答案,但我记得在jre变更日志中看到,他们从sun.security中删除了旧证书。试着看看这个(并且考虑导入一个外部密码库)。是的,看到了,但是我不认为证书使用其中任何一个。另外奇怪的是异常消息中的null。我认为他们删除了JRE中的一些资源。这意味着sun.security使用的服务加载器无法再找到它需要的类/服务/任何东西。很抱歉,我对java.security不太了解,但据我所知,只有在有SecurityProvider提供足够的算法类的情况下,密码才能使用算法。我知道普通JRE有一个默认的提供程序。我知道bouncyCastle带来了另一个。但是也许你的JRE没有(或者有一个默认的SecurityProvider没有你需要的算法),你有没有成功解决这个问题?我有一个非常相似的设置。失败的证书是我生成的自签名证书。还没有。我打开了JDK bug,也许他们会找到解决方案。