【问题标题】:Getting SSL error even after ignoring it using TrustManager即使在使用 TrustManager 忽略它后也会出现 SSL 错误
【发布时间】:2013-04-14 17:52:05
【问题描述】:

我正在尝试使用以下代码绕过证书:

私有静态 HttpClient wrapClient(HttpClient base) 抛出 AGException { 尝试 { SSLContext ctx = SSLContext.getInstance("TLS");

   X509TrustManager tm = new X509TrustManager()
   {
     public void checkClientTrusted(X509Certificate[] xcs, String string) throws CertificateException
     {
     }

     public void checkServerTrusted(X509Certificate[] xcs, String string) throws CertificateException {
     }

     public X509Certificate[] getAcceptedIssuers() {
       return null;
     }
   };
   ctx.init(null, new TrustManager[] { tm }, null);

   SSLSocketFactory ssf = new SSLSocketFactory(ctx,SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);


   ClientConnectionManager ccm = base.getConnectionManager();

   SchemeRegistry sr = ccm.getSchemeRegistry();

   sr.register(new Scheme("https", 443, ssf));

   return new DefaultHttpClient(ccm, base.getParams());
 }
 catch (NoSuchAlgorithmException nsaex)
 {
   throw new AGException(nsaex, "Not able to get the SSL Context");
 }
 catch (KeyManagementException kmex) {
     throw new AGException(kmex, "Not able to get the SSL Context");
 }

}

但仍然出现以下错误 javax.net.ssl.SSLPeerUnverifiedException:对等体未通过身份验证

只是简单介绍一下我的任务:

我正在使用 putty 与服务器建立隧道并通过 https 调用 SOAP 以连接到该服务器 但即使尝试使用上述代码也会收到相同的错误。

任何帮助/建议都会非常有用。 提前致谢。

-尼什

【问题讨论】:

    标签: ssl


    【解决方案1】:

    不要使用不安全的 TrustManager。

    这里的问题是对等方根本没有出示证书。

    【讨论】:

    • 当你说peer时,是指客户端还是服务器?就我而言,我没有在我身边使用任何证书,正如我所提到的,我想忽略我身边对证书的任何使用。总而言之,我想调用一个安全服务器(https 调用)而忽略握手,为此我使用了上面的代码。如果您可以共享正确的代码或告诉我在哪里更改我的代码,那将非常有帮助。提前致谢。
    • 当我说“同行”时,我指的是电线另一端的那个人。
    猜你喜欢
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-19
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多