У меня есть приложение, вложение Jetty. Я хотел бы использовать аутентификацию сертификата клиента в SSL и когда я включаю это; При запуске запроса я получаю следующее исключение. Но после этого запрос получает надлежащее обслуживание. Это исключение возникает только при доступе от IE или Chrome. Он не появляется при доступе от Firefox. У нас есть наш пользовательский SSLConnector, расширяющий SslSocketConnector. Я пытаюсь его отладить; но хотел знать, есть ли какое-то конкретное место/код, где я могу начать проверку.
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)
Update:
Я включил параметр отладки SSL и получал это исключение при чтении сразу после сообщения ServerHelloDone. Это сообщение, в котором сервер отправляет свой сертификат вместе с запросом на сертификат клиента, на который я верю. Я не уверен, что происходит в первом чтении. Любая помощь глубоко ценится.
*** 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
Update: Обновлен JDK до последнего, 23 и попытался с двумя включенными/отключенными свойствами. Все равно получайте такое же поведение.
Дополнительная информация: TLSv1 и SSLv3 включены во всех браузерах. Связь происходит должным образом без активации клиента. С клиентом auth всегда мы получаем исключение в первом рукопожатии, а следующее правильно выполняется и продолжается без исключений. Использование причальной версии 6.1.14 на стороне сервера