来自同一公司的移动应用程序和后端的自签名证书

Posted

技术标签:

【中文标题】来自同一公司的移动应用程序和后端的自签名证书【英文标题】:Self signed certificate for mobile app and backend from same company 【发布时间】:2018-10-20 04:30:39 【问题描述】:

我公司的产品是连接到我们自己的后端的 androidios 移动应用程序。移动应用程序的所有交互都是与我们自己公司开发的后端。

在这种情况下,后端是否可以使用自签名证书(而不是从 CA 获取证书)并将此自签名证书固定在移动应用上以使其更安全。

如果这个策略有意义,请告诉我(或者我们仍然需要从 CA 获得 SSL 证书)

【问题讨论】:

是的,您可以使用自签名证书,但配置 Android 以信任它是一项繁重的工作。 Android 会自动信任来自已知 CA 的真实 SSL 证书。 是的,你可以做到,这里有一个类似的问题可以做到。在这个问题中,他们似乎将密钥库保存在 res/raw 中,尽管我看到了一个稍微不同的解决方案,您只需将证书保存在 res/raw 中,然后将其加载到内存中的密钥库中。 ***.com/questions/18346249/… 如果您决定采用自签名路线,请确保为是否/何时需要更新或更换证书制定计划。否则,您最终可能会使用旧版本的应用程序锁定用户,而无法通知他们需要升级应用程序。 @StefanOS ..谢谢你的提醒。将证书固定在客户端上无济于事。更具体地说,仅将密钥(而不是证书)固定在客户端。通过仅固定密钥而不是证书,证书可以更改(但密钥必须保持不变) 是的,这是可能的,并且可以解决证书过期的问题。但是我会生成一个额外的密钥,而不是使用它只是为了保证它的安全 - 然后将它包含在应用程序中允许的固定密钥中。因为原始密钥可能会被泄露甚至丢失。 【参考方案1】:

这是一个老问题,但我认为它值得跟进。如果从正确的公司而不是从“三巨头”购买,SSL 证书非常便宜。 Comodo 拥有每年 60-70 美元的通配符证书(任何子域)。它们是安全的 (256 SHA) 并且可以立即安装。物有所值,恕我直言。

【讨论】:

正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于来自同一公司的移动应用程序和后端的自签名证书的主要内容,如果未能解决你的问题,请参考以下文章

openssl生成自签名证书

来自带有自签名证书的 https 服务器的 React-native fetch()

ssl

Silverlight 安全问题:自签名证书

如何添加自签名SSL证书 自签名SSL证书存风险

Java:使用自签名证书的 SSL 客户端身份验证