2

我对移动应用程序开发和 HTTPs 非常陌生。请多多包涵……我需要你的建议!

我的 iPhone 应用程序使用自签名证书通过 HTTPS 与服务器通信。

为了解决我的服务器不受信任的警告消息的情况,我使用了 NSURLConnection 委托方法和这种方法:

- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge {
    if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust])
    {
        [challenge.sender useCredential:[NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust] forAuthenticationChallenge:challenge];
    }

    [challenge.sender continueWithoutCredentialForAuthenticationChallenge:challenge];
}
  1. 我的第一个问题是:Apple 会批准这种方法吗?在与使用自签名证书的服务器通信时,这是一种处理 HTTPS 请求的允许且合法的方式吗?

  2. 当使用上述方法表示同意并仍连接到不受信任的服务器时,我的数据是否将通过 HTTPs 发送并且会被加密?

4

2 回答 2

2

人们总是使用 Apple 应用程序这样做,无论好坏,都不会被应用商店拒绝。但是,更安全的方法是 (1) 使用官方签名的证书,或 (2) 让您的应用程序仅接受您的自签名证书。

于 2012-06-02T19:16:12.540 回答
1
  1. 方法不存在可能导致拒绝的问题。
  2. 如果请求是 POST 类型,则数据将被加密。但是为了提高安全性,如果需要,您可以为您的数据添加更多加密。
于 2012-06-02T19:16:02.323 回答