当前位置: 首页 > 知识库问答 >
问题:

如何在Android上信任自签名证书?

杨昆
2023-03-14

我已经为我的服务器生成了自我签名的证书。然后用设置->安全->安装添加到Android中。

java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

据我所知,在我将证书添加到受信任的列表中之后,它应该可以很好地工作。我是不是漏掉了什么?其思路是通过Android系统添加证书,无需修改应用程序代码。

顺便说一句,我使用OKHttpClient进行网络连接。也许我应该启用https连接?

共有1个答案

锺离韬
2023-03-14

对于Android来说,很重要的一点是,当您生成自签名证书时,您将其标记为一个认证机构,以便使其能够认证证书--即使只是对自己进行签名,从而证明它是自己。

这是在basicconstraints扩展中完成的,它声明ca:true而不是默认的ca:false。当您导入这样标记的证书时,Android将认为它是用户安装的根证书,您应该能够在凭据存储>可信凭据>用户下看到它。

然而,具有该位的证书是一种强大的能力,而且这类证书在过去曾被邪恶的工具用来窥探据称加密的用户通信。因此,这些天,Google Play Protect将希望在这种CA证书生效时与用户进行交流。

 类似资料:
  • 当我们过渡到使用已购买的.dev域进行本地开发时,我正在使用以下代码生成证书: 证书在Mac OSX上运行良好,添加到钥匙链访问后,但在ubuntu上,我使用任何浏览器都遇到了问题。

  • 我想通过SSL连接到我的服务器。因此,我使用以下命令在服务器上生成证书: 如果我使用如下所示的TrustManager信任客户端上的所有证书,则连接可以正常工作: 但我当然不想相信所有的证书,而只相信我的证书。我尝试了以下几个命令来导入证书: 我要怎么做才能让它正常工作?有人能解释一下对一个不是很熟悉cryto领域的人所必需的步骤吗? 编辑:正如Donal Fellows所建议的那样,我尝试了自定

  • 我正试图将我的计算机配置为信任用于测试网站的自签名证书。然而,我在Firefox上遇到了一些问题。Chrome和IE都没问题。 我做了以下几点。 使用OpenSSL创建2048位pem rsa密钥和crt 从密钥和crt文件创建pfx文件 使用MMC将pfx导入到服务器上的个人证书存储中 将IIS配置为使用站点的证书 在客户端PC上 null 我还尝试将证书直接添加到Firefox的权限列表中。它

  • 我已经通过chrome导出了证书,然后将证书导入到密钥库中,使用以下操作: 如果运行,则证书就在那里。 当我在导入证书之后尝试运行它(使用gradle或eclipse)时,我得到了以下异常:

  • 我尝试为指向127.0.0.1的自定义本地域生成自签名证书: 如果像过去一样继续,则“安全证书不受信任”。 尝试将其导入Chrome时“不是证书颁发机构”。 导入证书CA后使用证书时“缺少使用者替代名称” 我很确定我在这个过程中错过了什么。请,谁能提供有效的配置,以处理替代名称,以及确切的步骤,以创建相应的CA和证书,以便Chrome和Firefox可以处理我的本地自定义域?

  • 如果URL使用自签名证书,则在以下情况下失败 我知道我可以将传递给参数,如下所示: 但是,我想做的是将请求指向磁盘上的公钥副本,并告诉它信任该证书。