开发者社区 问答 正文

接受带有自签名证书的HTTPS连接

我正在尝试使用HttpClientlib 进行HTTPS连接,但是问题在于,由于该证书不是由公认的证书颁发机构(CA)签名,例如Verisign,GlobalSIgn等,该证书列出了一组Android可信证书,我不断javax.net.ssl.SSLException: Not trusted server certificate。

我已经看到了一些解决方案,在这些解决方案中,您仅接受所有证书,但是如果我想问用户该怎么办?

我想要一个类似于浏览器的对话框,让用户决定是否继续。最好是我想使用与浏览器相同的证书库。有任何想法吗?

展开
收起
Puppet 2020-01-24 11:54:57 955 分享 版权
1 条回答
写回答
取消 提交回答
  • Google建议您将Android Volley用于HTTP / HTTPS连接,因为这HttpClient已被弃用。因此,您知道正确的选择:)。

    还有,永不NUKE SSL证书(永不!!!)。

    滥用SSL证书完全违反SSL的宗旨,而SSL的目的在于提高安全性。如果您打算轰炸所有随附的SSL证书,则没有使用SSL的感觉。更好的解决方案是不使用SSL,或者更好的解决方案是TrustManager使用Android Volley for HTTP / HTTPS连接在您的App +上创建自定义。

    这是我用基本的LoginApp创建的要点,它使用服务器端使用的自签名证书执行HTTPS连接,并已在该应用程序上接受。

    这也是另一个有用的要点,可用于创建在服务器上设置的自签名SSL证书以及在应用程序上使用证书。非常重要:您必须将上述脚本生成的.crt文件复制到Android项目中的“原始”目录中。

    2020-01-24 11:55:35
    赞同 展开评论