iOS应用程序SSL握手失败

iOS应用程序SSL握手失败,ios,ssl,https,Ios,Ssl,Https,我正在制作一个应用程序,通过在post方法中传递登录凭据,通过HTTPS登录到aspx网站。当使用Charles Proxy检查响应时,我可以从seal.verisign.com看到SSL握手失败错误,然后我被带回登录页面。我不知道我需要做什么来解决这个问题 我正在iPhone模拟器中测试这一点 我没有访问服务器实现的权限 有什么想法吗 谢谢大家! 服务器可能没有您正在使用的url的有效证书。 你查过了吗 如果您使用浏览器尝试url,它会给您一个警告吗?也许在实际设备上测试会提供更多信息 要在查

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

我正在iPhone模拟器中测试这一点

我没有访问服务器实现的权限

有什么想法吗


谢谢大家!

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


如果您使用浏览器尝试url,它会给您一个警告吗?

也许在实际设备上测试会提供更多信息

要在查尔斯做到这一点:

  • 转到代理:代理设置
  • 代理选项卡:在HTTP代理端口:字段中输入“8888”
  • SSL选项卡:确保“启用SSL代理”处于启用状态
  • 在您的开发计算机上:

  • 转到系统首选项:网络:Wifi:高级:TCP/IP选项卡:记下IPV4地址:(即10.0.1.101)
  • 关于你的想法:

  • 从设备转到并下载Charles SSL证书
  • 确定证书受信任(确保完成后禁用或删除它)
  • 转到设置应用程序:Wifi:为您的网络选择详细披露按钮(带白色箭头的蓝色圆形按钮)
  • 在HTTP代理下,选择“手动”
  • 在服务器字段中输入步骤(dev machine 1.)中的地址,以及步骤(dev machine 2.)中的端口号
  • 最后:

  • 重新启动Charles
  • 在您的iDevice上运行Safari进行测试。这将提示Charles显示一个对话框以允许或拒绝SSL代理。很明显,如果你允许的话,你应该准备好离开
  • 更多信息请访问Charles的网站:


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

    您必须在移动设备上安装SSL证书


    联机搜索如何为Charles Proxy安装SSL证书。

    您需要安装SSL证书来解决此问题

    遵循以下步骤

  • 在iOS上打开Safari浏览器

  • 在地址栏中键入“www.charlesproy.com/getssl”

  • 安装SSL证书
  • 重新启动代理服务器

  • 如果安装证书仍然没有帮助,那么可能是由于SSL固定

    来自charlesproy.com:

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


    在iOS>=10.3上,安装Charles代理证书后(根据@ashish verma的出色回答),还需要通过设置->常规->关于->证书信任设置来启用它:


    此处的完整设置:

    删除所有旧的用户凭据,然后重新安装新的ssl证书。

    如果在模拟器上运行,只需重新启动Charles Proxy和模拟器,确保Charles Proxy首先启动。

    我不知道“在您的设备上”的步骤1,肯定为我节省了几个小时。谢谢,请注意。我建议你从你的答案中编辑你博客的链接。他们只允许出现在您的个人资料页中。是否有任何方法可以解决Charles Proxy的SSL锁定问题?@tingason使用Android,并修补应用程序以禁用SSL锁定,或修补iOS应用程序并重新签名。@tingason for iOS:牢狱之灾的iphone,然后使用iOS SSL Kill Switch,或根安卓,使用(基于Xposed)JustTrustMe或Android SSL TrustKiller,详细解释请检查中文