charles-proxy – 浏览器不接受Charles Proxy SSL证书

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

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

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

我已经做到了这一点并且完美无缺.从那以后,我没有改变Charles的配置.我试图让它运作的东西:

>卸载并重新安装the Charles certificate.
>在以下浏览器中尝试相同:Chrome Canary,Chrome stable,Safari和Firefox
>使用HTTP代理而不是更高级的SOCKS代理.

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

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

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

该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
曲奇饼: …
起源: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

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

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

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

点赞