Проблема Java "нет общих наборов шифров" при попытке безопасного подключения к серверу - PullRequest
5 голосов
/ 08 сентября 2010

У меня проблема, когда клиент (не мой) безопасно подключается к моему серверу.

Кажется, что соединение отклоняется из-за несовпадения шифров, но я убедился, что сервер действительно разделяет некоторые шифры с клиентом.

Может ли быть проблема с неизвестным шифром (Неизвестно 0x0: 0x60)?Если так, что я должен сделать, чтобы это исправить?

Журналы Java SSL показаны ниже:

Listener-https, setSoTimeout(30000) called
Worker-30, READ: SSLv3 Handshake, length = 63
*** ClientHello, SSLv3
RandomCookie:  GMT: 1267050437 bytes = { 23, 244, 228, 68, 161, 225, 218, 222, 207, 128, 228, 138, 127, 141, 159, 63, 232, 48, 242, 240, 26, 76, 58, 158, 179, 0, 192, 140 }
Session ID:  {}
Cipher Suites: [TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_IDEA_CBC_SHA, SSL_RSA_WITH_RC4_128_SHA, SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_EXPORT1024_WITH_RC4_56_SHA, Unknown 0x0:0x60, SSL_RSA_EXPORT_WITH_RC4_40_MD5]
Compression Methods:  { 0 }
***
Worker-30, SEND SSLv3 ALERT:  fatal, description = handshake_failure
Worker-30, WRITE: SSLv3 Alert, length = 2
Worker-30, called closeSocket()
Worker-30, handling exception: javax.net.ssl.SSLHandshakeException: no cipher suites in common
Worker-30, called close()
Worker-30, called closeInternal(true)
Worker-30, called close()
Worker-30, called closeInternal(true)

Спасибо, -Ben

Ответы [ 2 ]

10 голосов
/ 08 сентября 2010

Если добавить к ответу erickson, если в вашем сертификате не используется пара ключей RSA, а вместо этого используется пара ключей DSA, то никакие «начинки» набора шифров RSA не помогут в решении этой проблемы. Вам нужно будет включить связанные с DSA наборы шифров (они обычно обозначаются ключевым словом DSS в них), а также чтобы клиент использовал те же наборы шифров.

Причина, по которой этот крайний случай может оказаться вашей проблемой, связана с поведением утилиты keytool по умолчанию при генерации секретных пар ключей - по умолчанию используется алгоритм DSA, а не RSA.

4 голосов
/ 08 сентября 2010

Вы говорите, что некоторые из запрошенных клиентом шифров включены на вашем сервере.Вы успешно подключились к одному из них?Например, попробуйте утилиту OpenSSL s_client с опцией -cipher, указывающей только этот набор шифров.

Возможно, поставщик не поддерживает все шифры, которые, по вашему мнению, вы включили, или, возможно, файлы юрисдикции неограниченной силы.неправильно установлены на вашем сервере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...