【问题标题】:Using a self signed certificate with my app在我的应用程序中使用自签名证书
【发布时间】:2012-09-23 05:20:19
【问题描述】:

我有一个移动应用程序,它通过https://myserver.com/mywebservice 访问网络服务。

如果我创建了一个自签名证书并将其放在我的服务器上,当移动应用程序访问 Web 服务时,它会看到该证书,但它无法识别它,因为它是自签名的。但在这种情况下,如果我遇到了“中间人”攻击,攻击者可以创建自己的证书,因此应用程序看到证书后又无法识别它。

问题:当您使用来自 goDaddy 的证书时,iOS 或 Android 是否经过编程以信任 goDaddy 证书才能正常工作,因此攻击者使用的假证书被视为无效?那么,如果我让应用信任我的证书,我可以以同样的方式使用我的自签名证书吗?

另外,我如何知道 iOS 或 Android 信任哪些证书?

【问题讨论】:

    标签: android ios ssl ssl-certificate


    【解决方案1】:

    通常,您的应用或操作系统需要信任颁发服务器证书的 CA 才能正常工作。如果它是由预先安装了证书的 CA 颁发的,那么一切正常。如果没有,您需要在操作系统信任存储中安装 CA 或修改您的应用程序以信任它。谁创建了证书并不重要,VeriSign 或 goDaddy 证书并不比您的自签名证书更“特殊”。

    至于获取可信证书列表,Android 4.x 及更高版本在 Settings->Security->Trusted Credentials 中列出了那些。对于早期版本,您必须编写一些代码来枚举它们。不了解iOS。

    【讨论】:

    • 我同意,但我想补充一件事:通常(但不总是)人们在开发阶段使用自签名证书,其中您的服务器运行在装有您的模拟器的同一台机器上,在这种情况下,您需要更改模拟器中的主机文件以将 10.0.2.2 指向您的证书域
    猜你喜欢
    • 2015-09-20
    • 2014-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-11
    • 1970-01-01
    • 1970-01-01
    • 2016-07-24
    相关资源
    最近更新 更多