Ich habe eine Anwendung, die Jetty einbettet. Ich möchte die Client-Zertifikat-Authentifizierung in SSL verwenden, und wenn ich das aktiviere, erhalte ich die folgende Ausnahme beim Start der Anforderung. Aber die Anfrage wird danach richtig bedient. Diese Ausnahme tritt nur beim Zugriff von IE oder Chrome auf. Sie tritt nicht auf, wenn von Firefox aus zugegriffen wird. Wir haben unseren benutzerdefinierten SSLConnector, der SslSocketConnector erweitert. Ich versuche, es zu debuggen; aber wollte wissen, ob es eine bestimmte Stelle/Code, wo ich anfangen kann, zu überprüfen.
javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:808)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1112)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1139)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1123)
at org.mortbay.jetty.security.SslSocketConnector$SslConnection.run(SslSocketConnector.java:631)
at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:451)
Caused by: java.io.EOFException: SSL peer shut down incorrectly
at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:333)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:789)
Aktualisierung:
Ich aktivierte die SSL-Debug-Option und erhielt diese Ausnahme bei einem Lesevorgang unmittelbar nach der ServerHelloDone-Meldung. Dies ist die Nachricht, in der der Server sein Zertifikat zusammen mit der Anforderung für das Client-Zertifikat sendet, glaube ich. Ich bin mir nicht sicher, was beim ersten Lesen passiert. Jede Hilfe wird sehr geschätzt.
*** ClientHello, TLSv1
****
%% Created: [Session-1, TLS_RSA_WITH_AES_128_CBC_SHA]
*** ServerHello, TLSv1
*** Certificate chain
***
*** CertificateRequest
Cert Types: RSA, DSS
Cert Authorities:
*** ServerHelloDone
WRITE: TLSv1 Handshake, length = 703
received EOFException: error
handling exception: javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
Aktualisierung: JDK auf die neueste Version 23 aktualisiert und mit den beiden Eigenschaften aktiviert/deaktiviert ausprobiert. Immer noch das gleiche Verhalten.
Mehr Informationen: TLSv1 und SSLv3 sind in allen Browsern aktiviert. Die Kommunikation erfolgt ordnungsgemäß ohne aktivierte Client-Authentifizierung. Mit Client-Authentifizierung erhalten wir immer eine Ausnahme beim ersten Handshake und der nächste wird ordnungsgemäß durchgeführt und verläuft ohne Ausnahmen. Ich verwende Jetty Version 6.1.14 auf der Server-Seite