iphone - 在 XCode 中发送 HTTPS 请求 (iOS)

标签 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这是正确的事情,而且它甚至支持这一点?关于服务器中的证书,我需要了解哪些信息?

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

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

问候 克里斯

最佳答案

证书验证是一件好事,几乎应该始终进行。您无需针对 HTTP 请求禁用它。

这条规则实际上只有一个异常(exception)。如果您必须连接到没有由受信任的证书颁发机构正确签名的证书的 HTTPS Web 服务,则必须关闭证书验证。

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

  1. 您被黑客攻击了!这就是证书和证书验证的原因。
  2. Web 服务正在配置错误的 SSL 服务器上运行。
  3. 证书已过期,服务器未保持运行。
  4. 网络服务的所有者成本太低,无法支付由受信任的证书颁发机构签署其证书的费用。
  5. 不向公众公开的开发服务器可能不值得费力去获取签名证书。

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

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

关闭证书验证的替代方法

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

关于iphone - 在 XCode 中发送 HTTPS 请求 (iOS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12859427/

相关文章:

ios - LibXML2.dylib 与 Xcode6

ios - UIView图片背景

ios - Objective-C 中的 cURL 请求 (POST)

ios - 验证 + 提交 iOS 应用程序包标识符问题

iphone - 基本货币转换应用程序

IOS:通过 tableView 导航并在下一个 View 中显示 TableView 数据

iphone - 如何检索核心数据中实体的唯一关系

ios - 即使应用程序在后台运行,如何使用通知信息更新 TableView?

ios - rust-openssl 在 --target=i386-apple-ios 时无法构建 bin(iOS 模拟器)

ios - iOS 9 中的 iPhone 通知中心未添加远程通知