【问题标题】:HTTPS/SSL using square okHTTP lib in public key infrastructure在公钥基础设施中使用方形 okHTTP 库的 HTTPS/SSL
【发布时间】:2014-07-02 19:11:11
【问题描述】:

我需要使用 PKI 实现通过 HTTPS 发送数据的整个过程,如此处所述http://upload.wikimedia.org/wikipedia/commons/9/96/Usage-of-Digital-Certificate.svg

如何使用私钥签署(我真的必须这样做吗?)我的请求,以及如何将证书(我从网络服务收到)添加到它?

我有自己的密钥库(http://nelenkov.blogspot.com/2011/12/using-custom-certificate-trust-store-on.html(非常棒的博客!)),带有 web 服务 RootCA、用于创建 CSR 文件的私钥和由 web 服务签名的证书(使用 csr)。

我正在使用 robospice + square retrofit + square okHttp(或者可能使用另一个 HTTP 客户端?)来执行请求并拥有自己的 SSLSocketFactory

OkHttpClient client = new OkHttpClient();  
KeyStore keyStore = App.getInstance().getKeyStoreUtil().getKeyStore();
TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
tmf.init(keyStore);
KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
kmf.init(keyStore, AppConfig.KEYSTORE_PASSWORD);
SSLContext sslCtx = SSLContext.getInstance("TLS");
sslCtx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
client.setSslSocketFactory(sslCtx.getSocketFactory());

由于尚未实现 web 服务,我不知道它是否有效,如果有人能告诉我我是否正确,我将不胜感激。

【问题讨论】:

标签: android security ssl keystore okhttp


【解决方案1】:

上面的代码可以正常工作,但请记住,从 App 中获取 App.getInstance.getKeyStoreUtil() 之类的类并不是真正干净的解决方案

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-11
    • 1970-01-01
    • 2016-04-26
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    相关资源
    最近更新 更多