我有一个移动应用程序,可以https://myserver.com/mywebservice访问网络服务。
如果我创建一个自签名证书并将其放在我的服务器上,当移动应用程序访问Web服务时,它会看到证书,但由于它是自签名的,因此无法识别它。但是在这种情况下,如果我有一个“中间人”攻击,攻击者可以创建自己的证书,因此应用程序会看到证书并再次无法识别它。
问题:当你使用像goDaddy那样的证书时,iOS或Android是否可以设置为信任goDaddy证书以便工作,那么攻击者使用的假证书被视为无效?因此,如果我让应用程序信任我的证书,我可以用同样的方式使用我的自签名证书吗?
另外,我如何知道iOS或Android信任哪些证书?
答案 0 :(得分:1)
通常,您的应用或操作系统需要信任颁发服务器证书的CA才能使用。如果它是由预安装了证书的CA颁发的,那么事情就可以了。如果没有,您需要在操作系统信任库中安装CA或修改您的应用程序以信任它。创建证书的人并不重要,VeriSign或goDaddy证书不比你自签名证书更“特别”。
至于获取受信任证书的列表,Android 4.x及更高版本列出了Settings-> Security-> Trusted Credentials中的那些证书。对于早期版本,您必须编写一些代码来枚举它们。不了解iOS。