Ssl -java.security.spec.InvalidKeySpecException:不支持java.security.spec.ECPublicKeySpec的原因是什么?

Ssl -java.security.spec.InvalidKeySpecException:不支持java.security.spec.ECPublicKeySpec的原因是什么?,ssl,soap,axis,Ssl,Soap,Axis,我试图通过https向服务器验证我的客户端应用程序-我使用的是Axis1.4JAR。我正在将正确的JKS文件传递到信任库。然而,我得到了以下例外 Caused by: javax.net.ssl.SSLException: Server key at com.sun.net.ssl.internal.ssl.Handshaker.throwSSLException(Handshaker.java:927) at com.sun.net.ssl.internal.ssl.Cl

我试图通过https向服务器验证我的客户端应用程序-我使用的是Axis1.4JAR。我正在将正确的JKS文件传递到信任库。然而,我得到了以下例外

   Caused by: javax.net.ssl.SSLException: Server key
    at com.sun.net.ssl.internal.ssl.Handshaker.throwSSLException(Handshaker.java:927)
    at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:199)
    at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:593)
    at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:529)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:958)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1203)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1230)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1214)
    at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:186)
    at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
    at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
    at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
    ... 26 more
  Caused by: java.security.spec.InvalidKeySpecException: does not support java.security.spec.ECPublicKeySpec
    at com.certicom.ecc.jcae.ECKeyFactorySpi.engineGeneratePublic(Unknown Source)
    at java.security.KeyFactory.generatePublic(KeyFactory.java:304)
    at com.sun.net.ssl.internal.ssl.HandshakeMessage$ECDH_ServerKeyExchange.<init>(HandshakeMessage.java:910)
    at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:195)
    ... 36 more

据确定,默认情况下,ECDH密码套件不是java 1.6设置的一部分,这导致不支持ECDH规范的异常

这是通过在java设置中的bcprov-jdk1.6.jar bouncycastle中添加此规范修复的。要执行此操作,请执行以下更改

java/jdk1.6.0_45\jre\lib\security\java.security

security.provider.1=org.bouncycastle.jce.provider.BouncyCastleProvider

[注意:security.provider.1-编号表示选择密码套件的优先级]


并将bcprov-jdk1.6.jar添加到jdk1.6.0_45\jre\lib\ext中

您使用的是第三方加密提供商com.certicom吗?不,我不是,axis.jar的一部分就是我using@Thilo:对不起,我刚看了代码,它确实使用了com.com