gpt4 book ai didi

java - 得到 JAVA 异常 : java. security.spec.InvalidKeySpecException: Unknown KeySpec type

转载 作者:太空宇宙 更新时间:2023-11-03 14:06:43 24 4
gpt4 key购买 nike

我构建了一个 JAVA 网络应用程序,它使用 SOAP 从外部数据库服务器获取数据。直到几天前,这一切正常。现在,与数据库服务器的连接在建立时终止。

在我的 JAVA 日志文件中,我发现了以下异常序列:

javax.net.ssl.SSLException: Server key
at sun.security.ssl.Handshaker.throwSSLException(Handshaker.java:1260)
at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:283)
...
Caused by: java.security.spec.InvalidKeySpecException: Unknown KeySpec type: java.security.spec.ECPublicKeySpec
at org.bouncycastle.jce.provider.asymmetric.ec.KeyFactory.engineGeneratePublic(Unknown Source)
at java.security.KeyFactory.generatePublic(KeyFactory.java:334)

也许数据库服务器的提供者更改了他们的 SSL 证书并获得了另一个 CA 链。我注意到中间 CA 使用 SHA384withRSA 作为签名算法。 (参见 COMODO, Domain Validation (SHA-2))。

那么,我该怎么做才能让我的系统重新运行呢?如果您需要更多信息,请询问。

备注:来自 Windows 7 客户端的相同 SOAP 请求工作正常。我注意到,Windows 7 客户端使用 TLSv1.2 建立 SSL 连接。我服务器的Linux系统(见下文)使用的是TLSv1,

我的 Java WebServer 的配置:

  • Debian Wheezy
  • Java:OpenJDK 1.7.0u111
  • Tomcat 7.0.28
    • https 连接器使用 JSSE 和 sslProtocol="TLS"
  • BIRT 运行时 V4.5.0
    • DTP V1.12.0
    • org.eclipse.datatools.enablement.oda.ws V1.2.6

谢谢 弗里德伯特

最佳答案

解决了!

显然,tomcat 连接器的配置不再符合当前的安全标准。

我在 2 年前设置了系统。但与此同时,安全要求也有所增加。

现在我从 turnkey 拿了一个最近的设备,比较了设置并发现了一些差异:

JAVA: java.security
security.provider.10=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/nss.cfg
Tomcat7: server.xml /Connector
protocol="org.apache.coyote.http11.Http11NioProtocol"
sslProtocol="TLSv1.2" sslEnabledProtocols="TLSv1.2,TLSv1.1,TLSv1"
server="Secret" URIEncoding="UTF-8" (may be, these does not matter)

有了这些改变,我的系统又可以工作了!

关于java - 得到 JAVA 异常 : java. security.spec.InvalidKeySpecException: Unknown KeySpec type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39948872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com