当客户端(不是我的客户端)安全地连接到我的服务器时,我遇到了一个问题。
似乎是由于密码不匹配而拒绝了连接,但是我已经证实服务器确实与客户端共享了某些密码。
未知密码(Unknown 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)
谢谢-本
添加到erickson的答案中,如果您的证书未使用RSA密钥对,而是证明使用了DSA密钥对,则没有任何“填充” RSA密码套件可帮助解决此问题。您需要启用与DSA相关的密码套件(通常由它们中的DSS关键字指示),并且还需要让客户端使用相同的密码套件。
可能是您遇到此问题的原因是由于生成秘密密钥对时keytool实用程序的默认行为-DSA而不是RSA是默认算法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句