我有一台带有自签名证书的服务器。我想使用 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/