浏览器不接受Charles Proxy SSL证书

时间:2014-05-19 15:05:58

标签: charles-proxy

我使用Charles代理(在OS X 10.9.3,Mavericks下)修改Origin头,以便我连接的API(在开发中)接受来自开发环境的传入请求。

我设法用一个简单的重写规则来完成这项工作,一切都工作到今天。

目前的问题是浏览器没有连接到代理(由Charles设置)。请求中的“失败”字段显示:“未发出请求。可能SSL证书被拒绝。”及以下,在Notes字段中:“您可能需要将浏览器配置为信任Charles CA SSL证书。”

我已经做到了这一点并且完美无缺。从那以后,我没有改变Charles的配置。我试图让它发挥作用的事情:

  1. 卸载并重新安装the Charles certificate
  2. 在以下浏览器中尝试相同:Chrome Canary,Chrome stable,Safari和Firefox
  3. 使用HTTP代理而不是 - 更高级的SOCKS代理。
  4. 我还确保Charles证书始终受信任,无论默认设置如何:

    keychain access http://f.cl.ly/items/2G1n1q212U1J0a022R1i/Screen%20Shot%202014-05-19%20at%2017.26.57.png

    不确定它是否是解决方案的线索,但是当我打开Charles直接导航到api时,我看到了: warning

    API确实托管在Windows Azure平台上,但我不明白为什么Charles证书(因为Charles充当中间人,向浏览器显示其证书)的原因是*。 azurewebsites.com而不是实际的主机。

    请务必注意,实际主机(例如api.example.com)具有* .example.com的有效购买通配符证书。

    如果有人暗示如何解决这个问题或者究竟发生了什么,我真的很感激她的建议。

    谢谢。

    PS。如果我调整直接请求以获得正确的Origin头(修改/清除了合理的信息):

    GET / xxx HTTP / 1.1
    主持人:api.example.com
    连接:保持活力
    缓存控制:max-age = 0
    接受:text / html,application / xhtml + xml,application / xml; q = 0.9,image / webp, / ; q = 0.8
    用户代理:Mozilla / 5.0(Macintosh; Intel Mac OS X 10_9_3)AppleWebKit / 537.36(KHTML,与Gecko一样)Chrome / 35.0.1916.114 Safari / 537.36
    Accept-Encoding:gzip,deflate,sdch
    Accept-Language:en-US,en; q = 0.8,hu; q = 0.6
    Cookie:...
    来源:https://acceptable.host.com

    我收到以下回复:

    HTTP / 1.1 400错误请求
    内容长度46
    Content-Type application / json;字符集= UTF-8
    服务器Microsoft-IIS / 8.0
    X-Powered-By ASP.NET
    Set-Cookie ARRAffinity = secret-token; Path = /; Domain = api.example.com
    2014年5月21日星期三07:58:02 GMT

1 个答案:

答案 0 :(得分:2)

这是一个非常古老的问题,但这是我今天为任何仍然存在问题的人找到的答案。

https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/

您必须允许您的机器接受Charles ssl证书。 (在Mac上,这是通过钥匙串完成的。)