【问题标题】:How can I add a SSL certificate on my apk?如何在我的 apk 上添加 SSL 证书?
【发布时间】:2018-02-02 00:39:21
【问题描述】:

我正在尝试连接到 https 网址。

我面临的问题是,当我尝试通过WebView 连接时,出现以下错误:

无法验证证书链,错误:java.security.cert.CertPathValidatorException: 未找到证书路径的信任锚。

我已经搜索了很多,但是关于这个错误的大多数响应都是忽略错误并让 url 没有问题。

看来,如果我在我的 Android 手机上添加证书,它运行良好,但它确实有任何意义,我必须在我要安装 de app 的每台设备中添加 SSL 证书(因为它们将是第三方客户)。

因此,我考虑将证书添加到 apk 中,这样应用程序的用户就不会遇到该证书的错误,他们将能够连接到该 https url。

是否可以在 apk 上添加 SSL 证书?

提前致谢!

【问题讨论】:

  • @DonChakkappan 我看了这个,但是证书必须在手机上还是在 apk 中?因为这条线:InputStream caInput = new BufferedInputStream(new FileInputStream("load-der.crt")); 我猜它正在从本地设备检索证书。
  • 将您的证书保存在 assets 文件夹中并像 context.getAssets().open("aliasname.cer") 一样打开它
  • @DonChakkappan 当我将它添加到 assets 文件夹时,我应该使用什么文件类型来添加证书?

标签: android https android-webview


【解决方案1】:

如果您使用本地服务器,那么设置和学习 SSL 将非常容易。

1 ] 为 SSL 通信 (https://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html) 设置服务器(例如 TomCat)。

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

【讨论】:

    猜你喜欢
    • 2023-03-13
    • 2020-01-01
    • 2021-07-29
    • 1970-01-01
    • 1970-01-01
    • 2020-09-05
    • 1970-01-01
    • 1970-01-01
    • 2021-01-17
    相关资源
    最近更新 更多