我正在开发一个 iOS 应用程序,当我尝试访问我们 API 服务器上的一些 API 时,我遇到了间歇性 SSL 故障。故障不会一直发生,但它们发生的次数足以成为一个重大问题。发生 SSL 故障时,报告的错误代码是 errSSLCrypto,或“基础加密错误”(-9809)。当应用程序尝试登录时,我大多会看到这些问题,但有时在访问其他 API 时会看到。
该应用程序是使用 ASIHTTPRequest 编写的,这里是构造登录请求的代码:
ASIFormDataRequest *loginFormDataRequest = [[ASIFormDataRequest alloc] initWithURL:...];
loginFormDataRequest.timeOutSeconds = 30.0f; // Included in an attempt to fix timeout problems
loginFormDataRequest.shouldAttemptPersistentConnection = NO; // Included in an attempt to fix timeout problems
[loginFormDataRequest addPostValue:self.username forKey:@"username"];
[loginFormDataRequest addPostValue:self.password forKey:@"password"];
[loginFormDataRequest addPostValue:@"1" forKey:@"applogin"];
loginFormDataRequest.delegate = self;
[loginFormDataRequest setDidFinishSelector:@selector(didFinishLoginFormDataRequest:)];
[loginFormDataRequest setDidFailSelector:@selector(didFailLoginFormDataRequest:)];
[loginFormDataRequest startAsynchronous];
很简单。
我已经更新了 ASIHTTPRequest 以响应 Apple 的技术说明 TN2287,但这并没有帮助。也没有将validatesSecureCertificate
属性设置为NO
.
与服务器的加密连接似乎检查正常。铬 说:
- 您与 [服务器] 的连接使用 256 位加密进行加密。
- 该连接使用 TLS 1.0。
- 连接使用 CAMELLIA_256_CBC 加密,使用 SHA1 进行消息认证,使用 DHE_RSA 作为密钥交换机制。
- 连接使用 DEFLATE 压缩。
正在使用 https 在端口 442 上联系服务器。我还尝试使用 MKNetworkKit 实现此登录代码,但我仍然间歇性地看到 SSL 错误,所以我认为问题不在于 ASIHTTPRequest。
我没有想法,所以我会感谢任何人可能有的任何见解。在此先感谢您的帮助!