我正在尝试与https
网址建立连接。
我遇到的问题是,当我尝试通过WebView
进行连接时,我收到以下错误:
无法验证证书链,错误:java.security.cert.CertPathValidatorException:找不到证书路径的信任锚。
我搜索了很多,但大多数关于此错误的回复是忽略错误并让网址没有问题。
似乎如果我在我的Android手机上添加证书它运作良好,但它确实有任何意义,我将不得不在我想要安装de app的每个设备中添加SSL证书(因为他们将是第三方客户端)。
因此,我考虑过将证书添加到apk中,这样应用程序的用户就不会有该证书的错误,他们将能够连接到https
网址。
是否可以在apk上添加SSL证书?
提前致谢!
答案 0 :(得分:0)
设置和安装非常简单如果使用本地服务器,请学习SSL。
1]设置服务器(例如; TomCat)进行SSL通信(https://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html)。
2]编写一个简单的Web服务(http://www.radcortez.com/ssl-tls-rest-server-client-with-spring-and-tomee/)。
3]使用任何一个工具(Keytool,OpenSSL等)准备自签名证书
4]建议使用命令来创建密钥库,证书等。但对于懒人来说,有一个基于GUI的程序:)(http://keystore-explorer.org/downloads.html)
5]现在,是时候将SSL证书固定到Android应用程序了。添加你的aliasname.cer(它可以从[4]中提到的s / w导出)
6]以编程方式检查主机名(https://infinum.co/the-capsized-eight/securing-mobile-banking-on-android-with-ssl-certificate-pinning)。
7]创建自定义信任管理器,以便我们可以省略android系统的默认信任管理器(https://github.com/ikust/hello-pinnedcerts)