iOS应用SSL握手失败

时间:2013-04-02 15:31:26

标签: ios ssl https

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

我正在iPhone模拟器中对此进行测试。

我无法访问服务器实现。

有什么想法吗?

谢谢!

7 个答案:

答案 0 :(得分:13)

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

在查尔斯做到这一点:

  1. 转到代理:代理设置...
  2. 代理选项卡:输入" 8888"在HTTP代理端口:字段
  3. SSL标签:确保"启用SSL代理"
  4. 在你的开发机器上:

    1. 转到系统偏好设置:网络:Wifi:高级:TCP / IP标签:记下IPV4地址:(即10.0.1.101)
    2. 在您的iDevice上:

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

        1. 重启Charles
        2. 在iDevice上运行Safari进行测试。这应该提示Charles显示一个允许或拒绝SSL代理的对话框。显然允许,你应该好好去。
        3. 查尔斯网站上的更多信息:http://www.charlesproxy.com/documentation/proxying/ssl-proxying/

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

答案 1 :(得分:10)

如果安装证书仍无法帮助您,则可能是由于SSL固定。

来自charlesproxy.com:

  

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

答案 2 :(得分:4)

您需要安装SSL证书才能解决此问题。

请按照以下步骤操作

  1. iOS 模拟器

  2. 上打开 Safari 浏览器
  3. 在地址栏中输入“www.charlesproxy.com/getssl”

  4. 安装 SSL 证书
  5. 重新启动 Charles Proxy

答案 3 :(得分:1)

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

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

答案 4 :(得分:0)

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

在线搜索如何为Charles Proxy安装SSL证书。

答案 5 :(得分:0)

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

答案 6 :(得分:0)

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