Ich habe eine JAVA-Webanwendung erstellt, die SOAP verwendet, um Daten von einem externen Datenbankserver abzurufen. Das funktioniert bis vor ein paar Tagen gut. Jetzt wird die Verbindung zum Datenbankserver beim Einrichten beendet.Got JAVA-Ausnahme: java.security.spec.InvalidKeySpecException: Unbekannte KeySpec-Typ
In meiner JAVA-Protokolldatei, fand ich die folgende Sequenz von Ausnahmen:
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)
Vielleicht ist der Anbieter des Datenbankservers hat ihr SSL-Zertifikat geändert und bekam eine andere CA-Kette. Ich bemerkte, dass die Zwischen-CA SHA384withRSA als Signaturalgorithmus verwendet. (siehe COMODO, Domain Validation (SHA-2)).
Also, was kann ich tun, um mein System wieder zum Laufen zu bringen? Bitte fragen Sie nach, wenn Sie weitere Informationen benötigen.
Anmerkung: Die gleiche SOAP-Anfrage von einem Windows 7-Client funktioniert einwandfrei. Dort habe ich festgestellt, dass der Windows 7-Client TLSv1.2 verwendet, um die SSL-Verbindung herzustellen. Das Linux-System von meinem Server (siehe unten) verwendet TLSv1,
Die Konfiguration meines Java WebServer:
- Debian Wheezy
- Java: OpenJDK 1.7.0u111
- Tomcat 7.0.28
- https-Verbindungsstück verwendet JSSE mit sslProtocol = "TLS"
- BIRT Runtime V4.5.0
- DTP V1.12.0
- org.eclipse.datatools.enablement.oda.ws V1.2.6
Dank Fried
Sie müssen Ihren Code bitte posten – user2465510
Es ist schwierig, diesen Teil des Codes hinzuzufügen - weil dieser Fehler innerhalb des BIRT-Frameworks auftritt. Ich habe eine "Web-Service-Datenquelle" in einem BIRT-Bericht verwendet, um die Daten vom SOAP-fähigen Datenbankserver abzurufen. Daher ist der Code im [Eclipse-Projekt] (https://eclipse.org/datatools/downloads.php) öffentlich verfügbar. (DTP V1.12.0, org.eclipse.datatools.enablement.oda.ws V1.2.6). – Friedbert