【问题标题】:Suppress sslpeerunverifiedexception while creating socket在创建套接字时抑制 sslpeerunverifiedexception
【发布时间】:2014-12-15 14:33:54
【问题描述】:

我需要将 SNI 设置为我的 socketFactory。所以我一直在使用SSLCertificateSocketFactory这个类。 在创建套接字时,它给了我一个sslpeerunverifiedexception,因为没有设置 SAN,服务器证书。我可以如何抑制这个异常,并要求它允许创建套接字而不考虑服务器证书吗?

以下是我的代码:

            TrustManager tm = new X509TrustManager() {
                public void checkClientTrusted(X509Certificate[] chain,
                        String authType) throws CertificateException {
                }

                public void checkServerTrusted(X509Certificate[] chain,
                        String authType) throws CertificateException {
                }

                public X509Certificate[] getAcceptedIssuers() {
                    return null;
                }
            };

            SSLCertificateSocketFactory ssf = (SSLCertificateSocketFactory) SSLCertificateSocketFactory
                    .getDefault(0);

            ssf.setTrustManagers(new TrustManager[] { tm });

            m_sslsocket = (SSLSocket) ssf.createSocket(m_socket, m_host, m_port, false);

【问题讨论】:

    标签: android hostname sni sslsocketfactory


    【解决方案1】:

    使用getInsecure 创建 SSLCertificateSocketFactory 对我有用。它返回一个新的套接字工厂实例,禁用所有 SSL 安全检查。

    SSLCertificateSocketFactory ssf = (SSLCertificateSocketFactory) SSLCertificateSocketFactory
                        .getInsecure(0, null);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多