android - 具有自签名证书的服务器的https

时间:2014-06-18 13:02:58

标签: android ssl

我正在使用不受信任证书的android的https教程。请参阅here

他们提供了CA不受信任时的方案示例代码。我的服务器上有自签名证书的场景。所以我无法弄清楚我在其示例代码中用以下内容替换以下内容:

InputStream caInput = new BufferedInputStream(new FileInputStream("load-der.crt"));

// I can't figure out where to get my crt from ? 
// I don't have access to that path directly from a URL

对于自签名证书,他们说:

You can create your own TrustManager, this time trusting 
the server certificate directly.

我是否已单独获取服务器的自签名证书? API会不会以某种方式自动获取该信息?

2 个答案:

答案 0 :(得分:1)

  

我是否已单独获取服务器的自签名证书?

我不知道在这种情况下“单独”是什么意思,但是为了验证,您需要包含自签名证书的密钥库。

  

API会不会以某种方式自动为我提供?

怎么可能?验证证书背后的一点是确认它确实是正确的,并且您的用户不是中间人攻击的受害者。要为自签名证书执行此操作,我们需要相关详细信息才能进行验证。

FWIW,如果您发现这些内容设置有点复杂,我a TrustManagerBuilder中的my CWAC-Security library可能会有所帮助。

答案 1 :(得分:0)

如果您有服务器证书,如果该证书是自签名的,那么您应该将公钥证书添加到系统的信任存储区,否则它将不会信任并导致信任相关的异常 你应该提取证书(来自服务器证书的公钥证书),并且需要替换load-der.crt, 然后运行链接中提供的示例。

Mohankumar