尝试发送到 SSLServerSocket 时出现 SSLSocket 异常握手错误

编程入门 行业动态 更新时间:2024-10-28 05:14:26
本文介绍了尝试发送到 SSLServerSocket 时出现 SSLSocket 异常握手错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

这是我第一次处理 SSLSockets ,

it's my first times to deal with SSLSockets ,

我创建了 SSLServerSocket 和 SSLSocket ,

i created SSLServerSocket and SSLSocket ,

ServerSocket 运行正常,但是当尝试运行 SSLSocket (Client) 时,它没有运行,我看到这个错误:

the ServerSocket run ok , but when trying to run the SSLSocket (Client) , it's don't run , and this error appear to me :

严重:空javax.ssl.SSLHandshakeException:收到致命警报:handshake_failure在 sun.security.ssl.Alerts.getSSLException(Alerts.java:192)在 sun.security.ssl.Alerts.getSSLException(Alerts.java:154)在 sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1961)在 sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1077)在 sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312)在 sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339)在 sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1323)在 chat.SS.(SS.java:45)在 chat.SS.main(SS.java:70)

SEVERE: null javax.ssl.SSLHandshakeException: Received fatal alert: handshake_failure at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) at sun.security.ssl.Alerts.getSSLException(Alerts.java:154) at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1961) at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1077) at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1323) at chat.SS.(SS.java:45) at chat.SS.main(SS.java:70)

这是 SSLServerSocket 类的代码:

this is the code for SSLServerSocket Class:

public class SSocket implements Runnable{ SSLServerSocket ss; DataOutputStream doo; DataInputStream di; public SSocket(){ try { System.setProperty("javax.ssl.keyStore",System.getProperty("user.dir")+"/src/cacerts.jks"); System.setProperty("javax.ssl.keyStorePassword","ja142236"); SSLServerSocketFactory sf = (SSLServerSocketFactory) SSLServerSocketFactory.getDefault(); ss = (SSLServerSocket) sf.createServerSocket(2149); //ss.setSoTimeout(5000); } catch (IOException ex) { Logger.getLogger(SSocket.class.getName()).log(Level.SEVERE, null, ex); } } @Override public void run() { SSLSocket s; try { while(true){ System.out.println("Waiting Client Message!"); s = (SSLSocket) ss.accept(); System.out.println("Acceptted!"+s.getRemoteSocketAddress()); s.close(); } } catch (IOException ex) { System.out.println(ex.getMessage()); }finally{ try { ss.close(); } catch (IOException ex) { Logger.getLogger(SSocket.class.getName()).log(Level.SEVERE, null, ex); } } } public static void main(String[] args){ SSocket ss = new SSocket(); ss.run(); } }

以及运行时出现错误的 SSLSocket(客户端):

and for the SSLSocket (Client) which error appear when run it :

public class SS { public SS() throws KeyStoreException, NoSuchAlgorithmException, CertificateException, KeyManagementException{ try { /* System.setProperty("javax.ssl.trustStore", System.getProperty("user.dir")+"/src/cacerts.jks"); System.setProperty("javax.ssl.trustStorePassword", "ja142236"); */ KeyStore ks = KeyStore.getInstance("JKS"); ks.load(new FileInputStream(System.getProperty("user.dir")+"/src/cacerts.jks"), ("ahmed149").toCharArray()); TrustManagerFactory kmf = TrustManagerFactory.getInstance("SunX509"); kmf.init(ks); SSLContext sslcontext = SSLContext.getInstance("SSLv3"); sslcontext.init(null, kmf.getTrustManagers(), null); SSLSocketFactory sf = (SSLSocketFactory) sslcontext.getSocketFactory(); SSLSocket s = (SSLSocket) sf.createSocket("localhost",2149); s.startHandshake(); DataOutputStream doo = new DataOutputStream(s.getOutputStream()); DataInputStream di = new DataInputStream(s.getInputStream()); doo.writeUTF(" Hiii From Client"); System.out.println(di.readUTF()); doo.close(); di.close(); s.close(); } catch (UnknownHostException ex) { Logger.getLogger(SS.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(SS.class.getName()).log(Level.SEVERE, null, ex); } } public static void main(String[] args) throws KeyStoreException, NoSuchAlgorithmException, CertificateException, KeyManagementException{ new SS(); } }

那么我忘记为客户类别做什么?

so what i forgot to do for the class of client ?

谢谢,

我启用了调试,这是调试:

Edit 1: i enabled debug , this is the debug :

keyStore is : keyStore type is : jks keyStore provider is : init keystore init keymanager of type SunX509 trustStore is: D:\Java\learn\Chat\src\cacerts.jks trustStore type is : jks trustStore provider is : init truststore adding as trusted cert: Subject: EMAILADDRESS=admin@server, CN=localhost, OU=Inc., O=server, L=CA, ST=KFS, C=US Issuer: EMAILADDRESS=admin@server, CN=localhost, OU=Inc., O=server, L=CA, ST=KFS, C=US Algorithm: RSA; Serial number: 0x821112e48bd394ff Valid from Fri Jun 14 15:54:57 EET 2013 until Sat Jun 14 15:54:57 EET 2014 trigger seeding of SecureRandom done seeding SecureRandom Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA Ignoring unavailable cipher suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 Ignoring unsupported cipher suite: TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 Ignoring unsupported cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA256 Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 Ignoring unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 Ignoring unavailable cipher suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA Ignoring unsupported cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 Ignoring unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 Ignoring unsupported cipher suite: TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA Ignoring unavailable cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_128_CBC_SHA256 Allow unsafe renegotiation: true Allow legacy hello messages: true Is initial handshake: true Is secure renegotiation: false Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA Ignoring unavailable cipher suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA Ignoring unavailable cipher suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 Ignoring unavailable cipher suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 Ignoring unavailable cipher suite: TLS_ECDH_anon_WITH_AES_256_CBC_SHA Ignoring unavailable cipher suite: TLS_DH_anon_WITH_AES_256_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 Ignoring unavailable cipher suite: TLS_DH_anon_WITH_AES_256_CBC_SHA256 Ignoring unavailable cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA256 Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 Ignoring unavailable cipher suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA Ignoring unavailable cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA Ignoring unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 for SSLv3 Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 for SSLv3 Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_128_CBC_SHA256 for SSLv3 Ignoring unsupported cipher suite: TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 for SSLv3 Ignoring unsupported cipher suite: TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 for SSLv3 Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 for SSLv3 Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 for SSLv3 Ignoring unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 for TLSv1 Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 for TLSv1 Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_128_CBC_SHA256 for TLSv1 Ignoring unsupported cipher suite: TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 for TLSv1 Ignoring unsupported cipher suite: TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 for TLSv1 Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 for TLSv1 Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 for TLSv1 Ignoring unsupported cipher suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 Ignoring unsupported cipher suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 Ignoring unsupported cipher suite: TLS_RSA_WITH_AES_128_CBC_SHA256 Ignoring unsupported cipher suite: TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 Ignoring unsupported cipher suite: TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 Ignoring unsupported cipher suite: TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 Ignoring unsupported cipher suite: TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 Ignoring unsupported cipher suite: TLS_DH_anon_WITH_AES_128_CBC_SHA256 Ignoring unsupported cipher suite: TLS_RSA_WITH_NULL_SHA256 %% No cached client session *** ClientHello, TLSv1 RandomCookie: GMT: 1354403376 bytes = { 85, 58, 178, 64, 15, 222, 86, 91, 231, 60, 74, 9, 113, 221, 77, 62, 87, 208, 53, 100, 37, 103, 21, 16, 172, 127, 133, 167 } Session ID: {} Cipher Suites: [TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_RC4_128_SHA, SSL_RSA_WITH_RC4_128_SHA, TLS_ECDH_ECDSA_WITH_RC4_128_SHA, TLS_ECDH_RSA_WITH_RC4_128_SHA, TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_RC4_128_MD5, TLS_EMPTY_RENEGOTIATION_INFO_SCSV, TLS_ECDH_anon_WITH_AES_128_CBC_SHA, TLS_DH_anon_WITH_AES_128_CBC_SHA, TLS_ECDH_anon_WITH_RC4_128_SHA, SSL_DH_anon_WITH_RC4_128_MD5, TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA, SSL_DH_anon_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_ECDSA_WITH_NULL_SHA, TLS_ECDHE_RSA_WITH_NULL_SHA, SSL_RSA_WITH_NULL_SHA, TLS_ECDH_ECDSA_WITH_NULL_SHA, TLS_ECDH_RSA_WITH_NULL_SHA, TLS_ECDH_anon_WITH_NULL_SHA, SSL_RSA_WITH_NULL_MD5, SSL_RSA_WITH_DES_CBC_SHA, SSL_DHE_RSA_WITH_DES_CBC_SHA, SSL_DHE_DSS_WITH_DES_CBC_SHA, SSL_DH_anon_WITH_DES_CBC_SHA, SSL_RSA_EXPORT_WITH_RC4_40_MD5, SSL_DH_anon_EXPORT_WITH_RC4_40_MD5, SSL_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA, SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA, TLS_KRB5_WITH_RC4_128_SHA, TLS_KRB5_WITH_RC4_128_MD5, TLS_KRB5_WITH_3DES_EDE_CBC_SHA, TLS_KRB5_WITH_3DES_EDE_CBC_MD5, TLS_KRB5_WITH_DES_CBC_SHA, TLS_KRB5_WITH_DES_CBC_MD5, TLS_KRB5_EXPORT_WITH_RC4_40_SHA, TLS_KRB5_EXPORT_WITH_RC4_40_MD5, TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA, TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5] Compression Methods: { 0 } Extension elliptic_curves, curve names: {secp256r1, sect163k1, sect163r2, secp192r1, secp224r1, sect233k1, sect233r1, sect283k1, sect283r1, secp384r1, sect409k1, sect409r1, secp521r1, sect571k1, sect571r1, secp160k1, secp160r1, secp160r2, sect163r1, secp192k1, sect193r1, sect193r2, secp224k1, sect239k1, secp256k1} Extension ec_point_formats, formats: [uncompressed] *** [write] MD5 and SHA1 hashes: len = 215 0000: 01 00 00 D3 03 01 51 BB 8E 30 55 3A B2 40 0F DE ......Q..0U:.@.. 0010: 56 5B E7 3C 4A 09 71 DD 4D 3E 57 D0 35 64 25 67 V[.<J.q.M>W.5d%g 0020: 15 10 AC 7F 85 A7 00 00 6C C0 09 C0 13 00 2F C0 ........l...../. 0030: 04 C0 0E 00 33 00 32 C0 07 C0 11 00 05 C0 02 C0 ....3.2......... 0040: 0C C0 08 C0 12 00 0A C0 03 C0 0D 00 16 00 13 00 ................ 0050: 04 00 FF C0 18 00 34 C0 16 00 18 C0 17 00 1B C0 ......4......... 0060: 06 C0 10 00 02 C0 01 C0 0B C0 15 00 01 00 09 00 ................ 0070: 15 00 12 00 1A 00 03 00 17 00 08 00 14 00 11 00 ................ 0080: 19 00 20 00 24 00 1F 00 23 00 1E 00 22 00 28 00 .. .$...#...".(. 0090: 2B 00 26 00 29 01 00 00 3E 00 0A 00 34 00 32 00 +.&.)...>...4.2. 00A0: 17 00 01 00 03 00 13 00 15 00 06 00 07 00 09 00 ................ 00B0: 0A 00 18 00 0B 00 0C 00 19 00 0D 00 0E 00 0F 00 ................ 00C0: 10 00 11 00 02 00 12 00 04 00 05 00 14 00 08 00 ................ 00D0: 16 00 0B 00 02 01 00 ....... main, WRITE: TLSv1 Handshake, length = 215 [Raw write]: length = 220 0000: 16 03 01 00 D7 01 00 00 D3 03 01 51 BB 8E 30 55 ...........Q..0U 0010: 3A B2 40 0F DE 56 5B E7 3C 4A 09 71 DD 4D 3E 57 :.@..V[.<J.q.M>W 0020: D0 35 64 25 67 15 10 AC 7F 85 A7 00 00 6C C0 09 .5d%g........l.. 0030: C0 13 00 2F C0 04 C0 0E 00 33 00 32 C0 07 C0 11 .../.....3.2.... 0040: 00 05 C0 02 C0 0C C0 08 C0 12 00 0A C0 03 C0 0D ................ 0050: 00 16 00 13 00 04 00 FF C0 18 00 34 C0 16 00 18 ...........4.... 0060: C0 17 00 1B C0 06 C0 10 00 02 C0 01 C0 0B C0 15 ................ 0070: 00 01 00 09 00 15 00 12 00 1A 00 03 00 17 00 08 ................ 0080: 00 14 00 11 00 19 00 20 00 24 00 1F 00 23 00 1E ....... .$...#.. 0090: 00 22 00 28 00 2B 00 26 00 29 01 00 00 3E 00 0A .".(.+.&.)...>.. 00A0: 00 34 00 32 00 17 00 01 00 03 00 13 00 15 00 06 .4.2............ 00B0: 00 07 00 09 00 0A 00 18 00 0B 00 0C 00 19 00 0D ................ 00C0: 00 0E 00 0F 00 10 00 11 00 02 00 12 00 04 00 05 ................ 00D0: 00 14 00 08 00 16 00 0B 00 02 01 00 ............ [Raw read]: length = 5 0000: 15 03 01 00 02 ..... [Raw read]: length = 2 0000: 02 28 .( main, READ: TLSv1 Alert, length = 2 main, RECV TLSv1 ALERT: fatal, handshake_failure main, called closeSocket() main, handling exception: javax.ssl.SSLHandshakeException: Received fatal alert: handshake_failure Jun 14, 2013 11:42:08 PM chat.SS <init> SEVERE: null javax.ssl.SSLHandshakeException: Received fatal alert: handshake_failure at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) at sun.security.ssl.Alerts.getSSLException(Alerts.java:154) at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1961) at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1077) at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1323) at chat.SS.<init>(SS.java:44) at chat.SS.main(SS.java:69)

推荐答案

您的服务器没有证书.

javax.ssl.keyStore 属性应指代一个密钥库,该密钥库包含您的 证书和相应的私钥.

The javax.ssl.keyStore property should refer to a key store that contains your certificates in entries with the corresponding private keys.

更多推荐

尝试发送到 SSLServerSocket 时出现 SSLSocket 异常握手错误

本文发布于:2023-10-11 22:15:10,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1482989.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:发送到   异常   错误   SSLSocket   SSLServerSocket

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!