在XCode(iOS)中发送HTTPS请求

时间:2012-10-12 12:47:45

标签: iphone ios xcode ssl https

我需要你的帮助:)。

我是要将http请求更改为来自我的应用的https请求。现在我使用ASIHTTPRequest并按照tutorial进行操作。你必须知道我是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是正确的吗,它甚至支持这一点?我需要知道服务器中的证书是什么?

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

非常感谢 - 你是最棒的。

此致 克里斯

1 个答案:

答案 0 :(得分:2)

证书验证是一件好事,应该几乎总是这样做。您无需为HTTP请求禁用它。

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

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

  1. 你被黑了!这是证书和证书验证的原因。
  2. Web服务在配置错误的SSL服务器上运行。
  3. 证书已过期且服务器未跟上。
  4. Web服务的所有者太便宜,无法支付由受信任的证书颁发机构签署的证书。
  5. 未向公众公开的开发服务器可能不值得获得签名证书。
  6. 如何知道Web服务是否没有正确签名的证书

    1. 在网络浏览器中访问网络服务,看看是否收到证书错误。
    2. 检查应用中是否存在无效的证书错误。
    3. 关闭证书验证的替代方法

      1. 获取由受信任的证书颁发机构签名的证书。
      2. 创建您自己的证书颁发机构,使用您自己的证书颁发机构签署您的证书,并在iOS设备上将您的证书颁发机构安装为可信证书颁发机构。