Исключение при запуске запроса - ClientAuth SSL

У меня есть приложение, встраивающее 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) 

Обновление:

Я включил параметр отладки 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

Обновление: Я пытаюсь его отладить; но хотел знать, есть ли какое-то конкретное место / код, где я могу начать проверку.

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) 

Обновление:

Я включил параметр отладки 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

Обновление: Я пытаюсь его отладить; но хотел знать, есть ли какое-то конкретное место / код, где я могу начать проверку.

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) 

Обновление:

Я включил параметр отладки 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

Обновление: Обновил JDK до последней версии 23 и попробовал включить / отключить два свойства. По-прежнему наблюдается то же поведение.

Подробнее: TLSv1 и SSLv3 включены во всех браузерах. Связь происходит правильно без включенной клиентской аутентификации. С клиентской аутентификацией мы всегда получаем исключение при первом рукопожатии, а следующее выполняется правильно и продолжается без исключений. Использование приставки версии 6.1.14 на стороне сервера

10
задан javanna 12 July 2011 в 09:17
поделиться