ios - 带有自签名证书的 HTTPS iOS

标签 ios objective-c https certificate ssl-certificate

我有一台带有自签名证书的服务器。我想使用 https 表单将我的设备连接到服务器。 我听说我必须接受这个联系。但我不知道怎么办。 我有一个自签名证书,因为它是一个测试服务器。但是我想用 https 形式访问它? 当我尝试使用 https 访问时出现错误:

SURLConnection/CFURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)

那么就是自签名证书了。

有人可以帮助我吗?

最佳答案

默认情况下,Cocoa 在证书无效时拒绝所有 SSL 连接。

但是,您可以强制他们也接受无效证书。该方法取决于您使用的库/框架。例如:

  • 对于 NSURLConnection,检查 this answer .
  • 对于 ASIHTTPRequest,您需要将属性 validatesSecureCertificate 设置为 NO。
  • 对于 AFNetworking,您可以查看 this page 中使用的代码
  • 对于 CFNetwork,低级基础框架,检查 this sample code .
  • 对于您正在使用的 SURLConnection,您需要遵循与 NSURLConnection 相同的说明。实际上,SURLConnection 只是 NSURLConnection 的一个子类。

重要提示:
上面的代码,接受任何种类的 SSL 证书,即使无效,也是一个严重的安全风险。基本上,它使整个 SSL 变得无用。因此,如果您真的需要使用 SSL 连接进行测试,您应该仅在开发期间使用该代码。
另请注意,Apple 将拒绝任何提交给 App Store 且接受无效 SSL 证书的应用程序。

关于ios - 带有自签名证书的 HTTPS iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22663768/

相关文章:

ios - Xcode 9.3.1 - iOS Swift 4.1 UITextView.becomeFirstResponder 线程 1 : EXC_BAD_ACCESS (code=1, 地址=0x4d555458)

objective-c - 记录时非常奇怪的 NSPredicate 行为

ios - 如何在 ios 中的 imageview 上进行六边形图像 mask ?

https - HTTPS 请求是什么样的?

iphone - 绘制具有可变高度的 UITableViewCell 时宽度不正确

ios - 如何使用存储在 CocoaTouch 框架中的 Localizable.strings?

google-chrome - 如何准确判断哪些不安全项目导致浏览器对混合安全和不安全项目发出警告?

apache - 为什么 Apache 提供新证书和过期证书?

iOS Region Monitoring on reused project 问题

objective-c - 添加到登录项 - 沙盒友好的解决方案