iOS应用SSL握手失败

JLa*_*_cy 34 ssl https ios

我正在制作一个应用程序,通过在post方法中传递登录凭据,通过HTTPS登录到aspx网站.使用Charles Proxy检查响应时,我可以看到来自seal.verisign.com的SSL握手失败错误,然后我将被带回登录页面.我不确定我需要做些什么才能解决这个问题.

我在iPhone模拟器中测试它.

我无权访问服务器实现.

有任何想法吗?

谢谢!

Vai*_*den 135

在iOS> = 10.3上,在安装Charles Proxy证书后(根据@ ashish-verma的优秀答案),您还需要通过设置 - > 常规 - > 关于 - > 证书信任设置启用它:

在iOS 10.3及更高版本上启用SSL根证书

完整设置:http://www.devsbedevin.com/debugging-ios-ssl-traffic/


Jal*_*koo 13

也许在实际设备上进行测试可以提供更多洞察力?

在查尔斯做到这一点:

  1. 转到代理:代理设置...
  2. 代理选项卡:在HTTP代理端口:字段中输入"8888"
  3. SSL选项卡:确保启用"启用SSL代理"

在您的开发机器上:

  1. 转到系统偏好设置:网络:Wifi:高级:TCP/IP选项卡:记下IPV4地址:(即10.0.1.101)

在您的iDevice上:

  1. 从您的设备转到http://charlesproxy.com/charles.crt并下载Charles SSL证书
  2. 好的证书是可信的(一旦完成,请务必禁用或删除它)
  3. 转到设置应用程序:Wifi:为您的网络选择详细的披露按钮(带有白色箭头的圆形蓝色按钮)
  4. 在HTTP代理下,选择"手动"
  5. 在步骤(开发机器1)的地址输入服务器字段,输入步骤中的端口号(查询2)

最后:

  1. 重启Charles
  2. 在iDevice上运行Safari进行测试.这应该提示Charles显示一个允许或拒绝SSL代理的对话框.显然允许,你应该好好去.

查尔斯网站上的更多信息:http://www.charlesproxy.com/documentation/proxying/ssl-proxying/

另外,您是否得到了对连接的响应:(NSURLConnection*)连接didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge*)质询方法?


Ben*_*mas 13

如果安装证书仍然无法帮助您,那么可能是由于SSL固定.

来自charlesproxy.com:

SSL固定请注意,某些应用实施SSL证书固定,这意味着它们专门验证根证书.由于应用程序本身正在验证根证书,因此它不会接受Charles的证书,并且会使连接失败.如果您已成功安装Charles root SSL证书并且可以在Safari中使用SSL代理浏览SSL网站,但是应用程序失败,那么SSL Pinning可能就是问题所在.


小智 1

服务器可能没有您正在使用的 URL 的有效证书。你检查了吗?

如果您使用浏览器尝试该网址,它是否会向您发出警告?