可以与 Android 应用共享我的服务器证书吗?

Is it OK to share my server's certificate with an Android app?

我为我们的系统开发了一个 API,所以它可以被 Android 应用程序使用。 Android 应用程序由团队的另一名成员开发。 由于服务器使用 SSL,android 应用在没有证书的情况下无法连接。

我应该指出这是一个自签名证书。

这种情况下的做法是什么?
给 Android 程序员证书,以便他可以将证书嵌入到应用程序中?
(这不意味着它会被破解和盗窃吗?)

我可以从哪里开始研究这个主题?

提前致谢,
害羞。

这里有一个 link 供您检查回答一个非常相似的问题。

How can I use different certificates on specific connections?

简单的答案是:将证书提供给另一个人没有错,这样他们就可以在打开安全连接时将其包含在 "trusted" 实体列表中。

只要客户端通过 SSL 或 TLS 连接到服务器,客户端 必须 查看服务器的证书以确定它是否信任它(基于签名者)它)。

就破解而言,任何证书都容易受到攻击,但是您增加了证书的长度(例如 2048 位或 4096 位)以使破解时间过长以至于不再有益于甚至试试。

不想 想做的是给 Android 开发人员您的私钥。流量一般是:

  • 私钥唯一标识您的系统,绝不能共享
  • 私钥用于创建证书签名请求 (CSR)
  • CSR 被发送到受信任的证书颁发机构 (CA)(在自签名的情况下,您自己担任此角色)
  • CA 根据您的私有 key/CSR
  • 发回受信任的签名证书