我正在使用优秀的Charles代理来简化Web调试。我正在使用它的SSL代理功能,并安装了捆绑的generic CA Certificate。虽然这有效,但它不安全,因为只要我的浏览器信任此证书,我就容易受到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钥匙串中。虽然Charles中的$NAME.pfx
可以正常使用,如果我输入密码,但如果没有密码则无法正常使用。
我的问题是如何生成在Charles中运行且不需要密码的证书。
答案 0 :(得分:5)
我在博客中介绍了如何在Charles上使用自定义SSL证书,在上一节中我解决了每次Charles启动时都必须输入密码的问题。
http://codeblog.shape.dk/blog/2014/01/06/custom-ssl-certificate-with-charles-web-proxy/
答案 1 :(得分:2)
自Charles 3.10问世以来,这不再是一个问题,因为每个安装都会生成自己的证书。因此,即使您信任Charles生成的证书,您也不会受到其他Charles用户的MIM攻击。
Per version 3.10 release notes:
版本3.10 2015年3月21日
主要新功能,改进和错误修复。
SSL更改
SSL证书根证书更改生成唯一 每次安装Charles的证书(参见SSL中的SSL代理) 帮助菜单)SSL代理现在有自己的设置菜单项 代理菜单请注意,这些更改会影响您的方式 目前使用Charles进行SSL代理。你需要安装和 信任一个新证书,该证书将自动生成 您。您可以使用以下命令在计算机上安装该证书 SSL代理下的“帮助”菜单中的选项。你也可以导出 证书,发送到其他系统,或浏览下载 要在iPhone等移动设备上安装的证书。