尝试使用以下两种方法从Java建立连接SSL,尝试实现其中一种方法。这两种方法都有错误,请找到代码和错误。
我们已添加https://github.com/gpotter2/SSLKeystoreFactories插件来建立连接
方法1
- SSLSocket s = SSLSocketKeystoreFactory.getSocketWithCert(neHost, Integer.parseInt(port),
Main.class.getResourceAsStream(Utilities.readGRCParameter("KeyStore", macro)),
Utilities.readGRCParameter("KeyStore_password", macro));
s.startHandshake(); httpsConn = (HttpsURLConnection) this.httpURL.openConnection();
String authString = this.username + ":" + this.password;
byte[] authEncBytes = Base64.encodeBase64(authString.getBytes());
String authStringEnc = new String(authEncBytes); httpsConn.setRequestProperty("Authorization", "Basic " + authStringEnc);
StringBuffer responseHeader = getHttpResponseHeader(httpConn);
错误
Thread-2,处理异常:java.lang.RuntimeException:意外 错误:java.security.InvalidAlgorithmParameterException :. trustAnchors参数必须是非空的Thread-2,SEND TLSv1 ALERT: 致命的,描述= internal_error线程-2,写:TLSv1警报, 长度= 2 [原始写入]:长度= 7 0000:15 03 01 00 02 02 50 ...... P. Thread-2,名为closeSocket()7900 SOAP910一般错误: java.lang.RuntimeException:意外错误: java.security.InvalidAlgorithmParameterException:trustAnchors 参数必须为非空
方法2
SSLServerSocket s = SSLServerSocketKeystoreFactory.getServerSocketWithCert(Integer.parseInt(port), Main.class.getResourceAsStream(Utilities.readGRCParameter("KeyStore", macro)), Utilities.readGRCParameter("KeyStore_password", macro));
s.setEnabledCipherSuites(s.getSupportedCipherSuites());
SSLSocket ss = (SSLSocket) s.accept();
ss.startHandshake(); httpsConn = (HttpsURLConnection) this.httpURL.openConnection();
String authString = this.username + ":" + this.password; byte[] authEncBytes = Base64.encodeBase64(authString.getBytes());
String authStringEnc = new String(authEncBytes);
httpsConn.setRequestProperty("Authorization", "Basic " + authStringEnc);
StringBuffer responseHeader = getHttpResponseHeader(httpConn);
获取错误
trigger seeding of SecureRandom
完成播种SecureRandom忽略不可用的密码套件: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA忽略不可用的密码套件: TLS_DHE_RSA_WITH_AES_256_CBC_SHA忽略不可用的密码套件: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA忽略不可用的密码套件: TLS_DHE_DSS_WITH_AES_256_CBC_SHA256忽略不可用的密码套件: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256忽略不可用的密码套件: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384忽略不可用的密码 套件:TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384忽略不可用 密码套件:TLS_RSA_WITH_AES_256_CBC_SHA256忽略不可用 密码套件:TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA忽略 不可用的密码套件:TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 忽略不可用的密码套件:TLS_DHE_DSS_WITH_AES_256_CBC_SHA 忽略不可用的密码套件: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384忽略不可用的密码 套件:TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA忽略不可用的密码 套件:TLS_RSA_WITH_AES_256_CBC_SHA忽略不可用的密码套件: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA忽略不可用的密码套件: TLS_DHE_RSA_WITH_AES_256_CBC_SHA忽略不可用的密码套件: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA忽略不可用的密码套件: TLS_DHE_DSS_WITH_AES_256_CBC_SHA256忽略不可用的密码套件: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256忽略不可用的密码套件: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384忽略不可用的密码 套件:TLS_ECDH_anon_WITH_AES_256_CBC_SHA忽略不可用的密码 套件:TLS_DH_anon_WITH_AES_256_CBC_SHA忽略不可用的密码 套件:TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384忽略不可用 密码套件:TLS_DH_anon_WITH_AES_256_CBC_SHA256忽略不可用 密码套件:TLS_RSA_WITH_AES_256_CBC_SHA256忽略不可用 密码套件:TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA忽略 不可用的密码套件:TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 忽略不可用的密码套件:TLS_DHE_DSS_WITH_AES_256_CBC_SHA 忽略不可用的密码套件: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384忽略不可用的密码 套件:TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA忽略不可用的密码 套件:TLS_RSA_WITH_AES_256_CBC_SHA忽略不可用的密码套件: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA忽略不可用的密码套件: TLS_DHE_RSA_WITH_AES_256_CBC_SHA忽略不可用的密码套件: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA忽略不可用的密码套件: TLS_DHE_DSS_WITH_AES_256_CBC_SHA256忽略不可用的密码套件: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256忽略不可用的密码套件: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384忽略不可用的密码 套件:TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384忽略不可用 密码套件:TLS_RSA_WITH_AES_256_CBC_SHA256忽略不可用 密码套件:TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA忽略 不可用的密码套件:TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 忽略不可用的密码套件:TLS_DHE_DSS_WITH_AES_256_CBC_SHA 忽略不可用的密码套件: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384忽略不可用的密码 套件:TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA忽略不可用的密码 套件:TLS_RSA_WITH_AES_256_CBC_SHA $ CTRL $恐慌 - 流程终止。
请帮助我使用其中任何一种方法,或提供任何建议来完成ssl连接。