使用不受信任的证书在Android应用中安全地支持HTTPS

时间:2012-02-07 08:11:14

标签: android ssl https httpclient

我知道这个问题被多次询问但我找不到任何完整的解决方案......以下是上下文:我正在开发一个Android应用程序,允许用户连接到他自己托管的Web实例应用。有些用户联系我询问我是否可以添加HTTPS的支持,当然还有自制证书的支持。所以我读了很多东西,这就是我的理解:

  • 简单但不安全的解决方案是允许所有证书,而无需检查任何内容。我实现了它并且它有效,但它显然不是一个好的解决方案!
  • 另一种解决方案是使用所需的证书创建密钥库。但是一方面我事先并不知道用户的证书,另一方面,很难让想要使用HTTPS的应用程序的用户使用keytool或其他东西......

所以我想实现与Web浏览器相同的解决方案。因此,当用户第一次尝试使用HTTPS连接到他的自托管服务器时,应用程序会向他显示不受信任证书的详细信息,并询问他是否确定要连接。通过选择“是的我确定”,将存储此证书,并且应用程序将永远不会向他询问任何相关内容。

目前,我正在使用HTTPClient和自定义SSLSocketFactory的解决方案,它允许所有证书...... 我也看到像SLSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER这样的东西,但我真的不明白它是否能帮到我。

您是否了解如何提供用户友好且安全的解决方案,以便将HTTPS与自制证书结合使用?

0 个答案:

没有答案