我想建立一个安全连接,以便从PhoneGap应用程序中的数据(需要登录)中获取数据。如果没有购买ssl证书,有没有办法做到这一点?
我可以使用自签名证书并将证书(或其指纹)添加到PhoneGap应用程序中,以便它始终可以检查证书是否正确并且没有发生中间人攻击?
答案 0 :(得分:2)
如果没有购买ssl证书,有没有办法做到这一点?
是
akirilov给了你一个答案。
您的其他选择是使用Startcom。他们提供免费的1级证书。他们的证书颁发机构安装在大多数桌面和移动平台上。
使用CA Zoo的坏处只有一个CA认证了您的证书(无论是Startcom,Verisidn等)。但是,动物园中的任何CA都可以声称自己是证书颁发机构。因此,欺骗CA或危及CA的坏人将能够获得服务器的证书。我们看到过这两件事都发生在过去。
您可以使用证书固定来避免CA Zoo。请参阅OWASP的Certificate and Public Key Pinning。
我可以使用自签名证书并将证书(或其指纹)添加到PhoneGap应用程序中,以便它始终可以检查证书是否正确并且没有发生中间人攻击?
是的,那也没关系。您的Phone Gap应用程序需要执行证书验证,并接受您的自签名证书。
要在.Net,Java,iOS等中执行类似操作,您可以固定服务器的证书,因为您事先知道它是什么。不过,我不知道如何在PhoneGap中做到这一点。
有关在.Net,Java,iOS等中固定的信息,请参阅OWASP的Certificate and Public Key Pinning。有适用于主要平台的示例代码,包括OpenSSL。