Java 当web服务器需要客户端TLS证书时,如何下载二进制大文件并抛出HTTPS?

Java 当web服务器需要客户端TLS证书时,如何下载二进制大文件并抛出HTTPS?,java,android,kotlin,Java,Android,Kotlin,我没有找到任何方法使用DownloadManager实现SSLContext。是否有方法添加客户端证书(密钥库) 目前,它是一个自签名证书(客户端和服务器)。我可以使用okhttp(管理SSLContext)连接到此服务器,但使用DownloadManager时,我收到一个错误“SSL握手”。这是我的代码 @Nullable private static SSLContext initTrustManager(Context context) { try { Certi

我没有找到任何方法使用DownloadManager实现SSLContext。是否有方法添加客户端证书(密钥库)

目前,它是一个自签名证书(客户端和服务器)。我可以使用okhttp(管理SSLContext)连接到此服务器,但使用DownloadManager时,我收到一个错误“SSL握手”。

这是我的代码

 @Nullable
private static SSLContext initTrustManager(Context context) {
    try {
        CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
        InputStream is = context.getAssets().open("s_cert.cer");
        Certificate ca;
        try {
            ca = certificateFactory.generateCertificate(is);
            Log.i("TrustManager", "ca=" + ((X509Certificate) ca).getSubjectDN());
        } finally {
            is.close();
        }
        String keyStoreType = KeyStore.getDefaultType();
        KeyStore keyStore = KeyStore.getInstance(keyStoreType);
        keyStore.load(null, null);
        keyStore.setCertificateEntry("ca", ca);
        String tmfAlgorithm = TrustManagerFactory.getDefaultAlgorithm();
        TrustManagerFactory tmf = TrustManagerFactory.getInstance(tmfAlgorithm);
        tmf.init(keyStore);
        SSLContext sslContext = SSLContext.getInstance("TLS");
        sslContext.init(null, tmf.getTrustManagers(), null);
        return sslContext;
    } catch (CertificateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (KeyStoreException e) {
        e.printStackTrace();
    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    } catch (KeyManagementException e) {
        e.printStackTrace();
    }
    return null;
}
下面是我如何实现它的:

builder.sslSocketFactory(initTrustManager(context).getSocketFactory());

这是正常工作的代码,所以如果仍然出现异常,请注意SSL证书本身,或者在服务器的api内部进行一些更改。(希望有帮助)

我根据你的答案编辑了我的问题。非常感谢。