【发布时间】:2013-03-23 23:38:57
【问题描述】:
我正在制作一个应用程序,通过在 post 方法中传递登录凭据来通过 HTTPS 登录到 aspx 网站。使用 Charles Proxy 检查响应时,我可以看到来自 seal.verisign.com 的 SSL Handshake failed 错误,然后我被带回登录页面。我不确定我需要做什么来解决这个问题。
我正在 iPhone 模拟器中对此进行测试。
我无权访问服务器实现。
有什么想法吗?
谢谢!
【问题讨论】:
我正在制作一个应用程序,通过在 post 方法中传递登录凭据来通过 HTTPS 登录到 aspx 网站。使用 Charles Proxy 检查响应时,我可以看到来自 seal.verisign.com 的 SSL Handshake failed 错误,然后我被带回登录页面。我不确定我需要做什么来解决这个问题。
我正在 iPhone 模拟器中对此进行测试。
我无权访问服务器实现。
有什么想法吗?
谢谢!
【问题讨论】:
如果在模拟器上运行,只需重启 Charles Proxy 和模拟器,确保 Charles Proxy 先启动
【讨论】:
在 iOS >= 10.3 上,安装 Charles Proxy 证书后(根据 @ashish-verma 的出色回答),您还需要通过 Settings -> General启用它> -> 关于 -> 证书信任设置:
在这里完成设置:http://www.devsbedevin.net/debugging-ios-ssl-traffic/
【讨论】:
删除所有旧用户凭据,然后重新安装新的 ssl 证书。
【讨论】:
如果安装证书仍然没有帮助,那么可能是由于 SSL Pinning。
来自 charlesproxy.com:
SSL 固定 请注意,某些应用程序实施 SSL 证书固定,这意味着它们专门验证根证书。因为应用程序本身正在验证根证书,所以它不会接受 Charles 的证书并且连接会失败。如果您已成功安装 Charles 根 SSL 证书并且可以在 Safari 中使用 SSL 代理浏览 SSL 网站,但应用程序失败,可能是 SSL Pinning 问题。
【讨论】:
您需要安装 SSL 证书才能解决此问题。
按照以下步骤操作
在 iOS 模拟器
在地址栏中输入“www.charlesproxy.com/getssl”
【讨论】:
您必须在移动设备上安装 SSL 证书。
在线搜索如何为 Charles Proxy 安装 SSL 证书。
【讨论】:
也许在实际设备上进行测试会提供更多信息?
在查尔斯做到这一点:
在您的开发机器上:
在您的 iDevice 上:
最后:
Charles 网站上的更多信息:http://www.charlesproxy.com/documentation/proxying/ssl-proxying/
另外,你是否收到了对连接的响应:(NSURLConnection*)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge*)challenge 方法?
【讨论】:
服务器可能没有您正在使用的 url 的有效证书。 你检查了吗?
如果您使用浏览器尝试该 url,它会给您一个警告吗?
【讨论】: