用于https通信的IOS和Android Trusted证书颁发机构

时间:2014-07-27 11:31:27

标签: ios cordova ssl https sails.js

我正在开发一个cordova应用程序,它需要使用ssl(https)与我的节点(Sails js)服务器通信。

该应用程序具有电子商务性质(需要https)

我可以通过在我的apple / android设备上手动安装cert来使用自签名证书进行测试。这显然不是我希望发布我的应用程序所以我假设我需要购买Android和Apple默认信任的证书。

第一个问题是:我的上述假设是否正确?

我很确定verisign证书应该被两者都信任,但这些证书非常昂贵!我能找到的最便宜的verisign是每年599美元(对于一台服务器)。

第二个问题:默认情况下,是否有Android和Apple信任的其他权限列表?如果是的话,我应该从他们那里购买哪种特定证书?

我的用于创建套接字连接的客户端代码:

    socket = io.connect(connectionUrl,
    {
       secure : true,
       port : 443,
       reconnection : true,
       reconnectionDelay : 1000,
       reconnectionDelayMax : 5000,
       timeout : 20000
    });

1 个答案:

答案 0 :(得分:3)

  

我可以通过手动安装证书来使用自签名证书进行测试   我的苹果/安卓设备。这显然不是我希望发表的方式   我的申请所以我假设我需要购买两者的证书   默认情况下,Android和Apple信任。

     

第一个问题是:我的上述假设是否正确?

没有

您也可以使用证书在生产环境中运行应用程序。由于您已经知道服务器的证书是什么,因此将其嵌入到您的应用程序中。在这个用例中没有理由去商业CA或使用CA动物园。

注意:在这个特定用例中,有一个受信任的分发渠道(App Store和Google Play)。因此,您可以利用先验服务器知识并嵌入证书而不必担心被篡改。 如果该应用通过可信渠道分发,那么您需要额外的安全控制。或如果


  

我很确定verisign证书应该受到两者的信任,但这些证明   非常昂贵!我能找到的最便宜的verisign是每年599美元   (对于一台服务器)。

没有

使用StartCom中的证书。他们提供免费的1级证书(域验证,没有通配符)。它们受到大多数移动和桌面浏览器的信任。如果需要,他们会向您收取撤销费用。

CACert也提供免费证书,但我从未使用过它们。此外,我不知道他们的CA在移动和桌面浏览器中的安装频率。

最后,还有另一个名为Let's Encrypt的免费新人。我对他们一无所知。我甚至不知道他们的CA证书被信任的频率(或不经常)。

此外,那些高额美元扩展验证(EV)证书不值钱。他们添加了 no 其他安全控制,因此从安全角度来看,它们与域验证(DV)证书一样有用(或无用)。他们唯一要做的就是恢复被Race to the Bottom侵蚀的CA利润水平。


  

第二个问题是:是否有其他权威的清单   默认情况下Android和Apple都信任吗?

小心要求列出事物或喜欢的东西等等。这是Stack Overflow的偏离主题。


socket = io.connect(connectionUrl,
{
   secure : true,
   port : 443,
   reconnection : true,
   reconnectionDelay : 1000,
   reconnectionDelayMax : 5000,
   timeout : 20000
});

你需要在这里多做一点。特别是,您需要提供服务器的证书或证明服务器的CA.我的PhoneGap书没有详细说明如何更改或固定证书。但这就是你需要做的事情。

如果PhoneGap不允许您提供证书(对它们感到羞耻 - 提交错误报告),那么您必须回退到浏览器安全模型和CA动物园。在浏览器安全模型中,任何信任锚或CA都可以声明对您的商务站点进行认证(即使是错误的站点)。在这种情况下,请使用StartCom或CACert。

浏览器安全模型和CA zoo会更频繁地发生故障。例如,在过去的两年中,这里是失败的CA和下属CA(我们知道):Diginotar,Trustwave,TurkTrust,印度国家信息中心(NIC),法国财政部。有关失败的简要历史,请参阅CACert的Risk/History。 (您应该尽一切可能避免使用浏览器安全模型。)