我正在开发iOS应用,我们希望通过SSL保护我们的私有API。
服务器端的一切都很好,我们的Android应用已经连接到HTTPS。 在iOS上,另一方面,我被卡住了。
我正在使用AFNetworking,所以:
_
AFHTTPRequestOperationManager *requestManager = [AFHTTPRequestOperationManager manager];
requestManager.securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];
requestManager.securityPolicy.allowInvalidCertificates = YES;
AFNetworking找到了证书,但是我们的服务器拒绝了身份验证,并返回了丑陋的400.
由于我是SSL的新手,因此非常感谢有关如何找到失败位置的任何提示。我们可以记录服务器端或类似的东西来“调查”吗?
答案 0 :(得分:2)
我建议不要使用您正在使用的固定模式。它不像" setDefaultSSLPinningMode:AFSSLPinningModePublicKey"从服务器获取证书。
通过这种方式,您可以将有效的.cer文件放入应用程序包中,然后在将来,只要您使用相同的公钥和私钥(.key文件)续订证书,就可以赢得&# 39; t必须更新你的应用程序。
考虑这个选项。如果您尝试并保持设置相同以允许无效证书,您应该能够使其正常工作。当你不允许不受信任的证书时,事情变得有点棘手。