iOS

时间:2018-06-07 15:03:46

标签: ios cordova self-signed

https://cordova.apache.org/docs/en/8.x/guide/appdev/security/index.html提及

  

原因是接受自签名证书会绕过   证书链验证,允许任何服务器证书   被设备视为有效。

  • 这是否意味着只要iOS设备信任任何自签名证书,任何SSL流量(来自任何应用)都是不安全的?
  • 如果是,Apple推荐的方式是什么(I 相信我不能阻止用户信任自签名 证书因任何原因)。我可以以某种方式检查是否有这样的 证书是可信的(在本例中我使用Cordova)。
  • 或者这仅仅意味着应用自签名证书的连接没有执行SSL验证?

2 个答案:

答案 0 :(得分:1)

在iOS上使用Cordova时,如果您想使用自签名证书,则必须将此代码添加到您的应用中。

@implementation NSURLRequest(DataController) + (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host { return YES; } @end

这可能意味着什么

  

原因是接受自签名证书会绕过   证书链验证,允许任何服务器证书   被设备视为有效。

与Android不同,这是全有或全无的,一旦你添加了所有的验证都被跳过了。

添加它只会影响您的应用,而不会影响其他应用,但它会影响您的WebView所做的所有连接。所以它会使你的应用程序高度不安全,因为人们可以在中间攻击中轻松做人。

答案 1 :(得分:0)

SSL已安装在服务器上。因此,这是关于某些CA(证书颁发机构)未颁发的SSL证书。适当的证书是从Verisign等真正的CA颁发的证书,以便Android或iOS设备通过验证信任链来验证它。

这并不涉及移动设备本身安装的任何证书,无论是iOS还是Android。

有关自签名证书和ca证书之间的进一步说明,请this SO answer