浏览器不接受Charles Proxy SSL证书

Bal*_*rdi 6 charles-proxy

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

我设法用一个简单的重写规则来使它起作用,直到今天一切都起作用了。

当前的问题是浏览器无法连接到代理(由Charles设置)。请求中的“失败”字段显示:“未请求。可能是SSL证书被拒绝。”以及下面在“注释”字段中:“您可能需要配置浏览器以信任Charles CA SSL证书。” 。

我已经做到了,并且效果很好。从那以后,我没有更改Charles的配置。我试图使其工作的事情:

  1. 卸载并重新安装Charles证书
  2. 在以下浏览器中尝试相同的方法:Chrome Canary,Chrome stable,Safari和Firefox
  3. 使用HTTP代理而不是“更高级的” SOCKS代理。

我还确保无论默认设置如何,始终信任Charles证书:

钥匙串访问

不知道这是否是解决方案的线索,但是当我在打开Charles的情况下直接导航到api时,会看到以下信息: 警告

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

重要的是要注意,实际的主机(例如api.example.com)对于* .example.com具有有效的,已购买的通配符证书。

如果有人对如何解决此问题或确切发生的事情有所提示,我将非常感谢她的建议。

谢谢。

ps。如果我调整直接请求以拥有适当的Origin标头(修改/清除了明智的信息):

GET / xxx HTTP / 1.1
主机:api.example.com
连接:keep-alive
缓存控制:max-age = 0
接受:text / html,application / xhtml + xml,application / xml; q = 0.9,image / webp ,/ ; q = 0.8
User-Agent: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-语言:en-US,en; q = 0.8,hu; q = 0.6
Cookie:...
来源:https : //acceptable.host.com

我得到以下回复:

HTTP / 1.1 400错误的请求
内容长度46
内容类型application / json; charset = 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格林威治标准时间

小智 4

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

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

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