7

我正在使用出色的Charles代理来简化 Web 调试。我正在使用它的 SSL 代理功能,并安装了它附带的通用 CA 证书。虽然这可行,但它是不安全的,因为只要我的浏览器信任此证书,我就容易受到 MIM 攻击。

我正在尝试使用 OpenSSL 创建“自定义 CA 证书”,因为 Charles 允许解决此问题。这些是我正在遵循的步骤:

NAME=daaku-ca
openssl genrsa -out $NAME.key 1024
openssl req -new -key $NAME.key -out $NAME.csr
openssl x509 -days 3650 -signkey $NAME.key -in $NAME.csr -req -out $NAME.crt
openssl pkcs12 -export -out $NAME.pfx -inkey $NAME.key -in $NAME.crt

按照这些步骤,我最终得到了一个自签名根证书 $NAME.crt,我成功地将它导入到我的 Mac OS X 钥匙串中。如果我输入密码,查尔斯的$NAME.pfxin Charles 可以正常工作并且被正确使用,但如果没有密码,它就不起作用。

我的问题是如何生成在 Charles 中有效且不需要密码的证书。

4

2 回答 2

7

我写了一篇关于如何在 Charles 中使用自定义 SSL 证书的博客,在最后一节中,我解决了每次 Charles 启动时都必须输入密码的问题。

http://codeblog.shape.dk/blog/2014/01/06/custom-ssl-certificate-with-charles-web-proxy/

于 2014-01-06T10:05:01.987 回答
3

自从 Charles 3.10 发布以来,这不再是一个问题,因为每个安装都会生成自己的证书。因此,即使您信任 Charles 生成的证书,您也不会受到其他 Charles 用户的 MIM 攻击。

根据版本 3.10 发行说明:

3.10 版 2015 年 3 月 21 日

主要的新功能、改进和错误修复。

SSL 更改

SSL 证书根证书更改为每次安装 Charles 生成唯一证书(请参阅帮助菜单中的 SSL 代理) SSL 代理现在在代理菜单中有自己的设置菜单项 请注意,这些更改将影响您当前使用 Charles 的方式用于 SSL 代理。您将需要安装并信任一个新证书,该证书将自动为您生成。您可以使用 SSL 代理下帮助菜单中的选项将该证书安装在您的计算机上。您还可以导出证书,发送到其他系统,或浏览下载证书以安装在 iPhone 等移动设备上。

于 2016-10-19T00:31:49.310 回答