2

我有一个移动应用程序可以访问https://myserver.com/mywebservice上的 Web 服务。

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

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

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

4

1 回答 1

1

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

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

于 2012-10-03T02:43:00.753 回答