2

我需要你的帮助 :)

我正在将 http 请求更改为来自我的应用程序的 https 请求。现在我已经使用了 ASIHTTPRequest并遵循了本教程。你必须知道我是 https 和 ssl 领域的初学者。我很感激任何帮助,真的。

这是我的http请求的代码:

- (void)fetchDataFromServer{

// Create Instance
ASIFormDataRequest *request = [[ASIFormDataRequest alloc] initWithURL:url];


// Parameter der POST Anfrage setzen
[request setPostValue:@"anything" forKey:@"app_action"];


[request setValidatesSecureCertificate:NO]; // no certificate so far
request.delegate = self; // assign delegate
[request startAsynchronous]; // send request

}

那工作得很好。但现在我需要保护数据连接,因此我必须使用https

我怎样才能意识到这种需求?ASIHTTPRequest是正确的,它甚至支持它吗?关于服务器中的证书,我需要知道什么?

请告诉我你知道的一切:)

非常感谢你——你是最棒的。

问候克里斯

4

1 回答 1

2

证书验证是一件好事,几乎总是应该完成。您不需要为 HTTP 请求禁用它。

这条规则实际上只有一个例外。如果您必须连接到没有由受信任的证书颁发机构正确签署的证书的 HTTPS Web 服务,那么您必须关闭证书验证。

为什么您的 Web 服务可能没有有效的证书

  1. 你被黑了!这就是证书和证书验证的原因。
  2. Web 服务在配置错误的 SSL 服务器上运行。
  3. 证书已过期,服务器没有跟上。
  4. Web 服务的所有者太便宜而无法为他的证书由受信任的证书颁发机构签名。
  5. 不向公众公开的开发服务器可能不值得为获得签名证书而烦恼。

如何知道 Web 服务是否没有正确签名的证书

  1. 在 Web 浏览器中访问 Web 服务,查看是否收到证书错误。
  2. 检查您的应用程序中的无效证书错误。

关闭证书验证的替代方法

  1. 让您的证书由受信任的证书颁发机构签名。
  2. 创建您自己的证书颁发机构,使用您自己的证书颁发机构签署您的证书,并将您的证书颁发机构作为受信任的证书颁发机构安装在 iOS 设备上。
于 2012-10-12T14:59:26.260 回答