使用apt 安装Charles
安装Charles:
1.添加公钥
wget -q -O - https://www.charlesproxy.com/packages/apt/PublicKey | sudo apt-key add -
或者
sudo apt-key adv --keyserver pgp.mit.edu --recv-keys 1AD28806
2.添加资源库
sudo sh -c 'echo deb https://www.charlesproxy.com/packages/apt/ charles-proxy main > /etc/apt/sources.list.d/charles.list'
3.更新源,安装Charles
sudo apt-get update sudo apt-get install charles-proxy
破解Charles
Charles 在线破解工具
github.com/8enet/Charles-Crack
1.将下载的Charles.jar
包,替换到安装目录下。我的安装目录是默认的,在/usr/lib/charles-proxy/
下。
注意:为了保险起见先把原始charles.jar复制到其他目录,将破解后的charles.jar
移动到对应位置,确保该目录下只有一个charles.jar
就好了。
配置Charles
1.下载Charles的SSL根证书:Help
-> SSL Proxying
-> Install Charles Root Certificate
,安装后,应该能在home目录的.charles/ca/
中找到charles-proxy-ssl-proxying-certificate.cer
和charles-proxy-ssl-proxying-certificate.pem
两个文件。
2.转换格式:终端中执行
openssl x509 -outform der -in charles-proxy-ssl-proxying-certificate.pem -out charles-proxy-ssl-proxying-certificate.crt
3.在/usr/share/ca-certificates
文件夹下新建一个目录charles
,再将转换格式后得到的证书charles-proxy-ssl-proxying-certificate.crt
复制到/usr/share/ca-certificates/charles
中
注意扩展阅读部分
cd /usr/share/ca-certificates sudo mkdir charles sudo cp /home/rcw/.charles/ca/charles-proxy-ssl-proxying-certificate.crt /usr/share/ca-certificates/charles/
4.在/etc/ca-certificates.conf
这个配置文件的最后追加charles/charles-proxy-ssl-proxying-certificate.crt
,用sudo update-ca-certificates
更新证书,完成后发现/etc/ssl/certs
目录中应该多了一个charles-proxy-ssl-proxying-certificate.pem
文件,表示成功
6.在Charles中Proxy
-> SSL Proxy Settings
-> SSL Proxy
中设置一个Host为*
,Port为443
的Location,主要是用来代理所有的HTTPS请求
7.以上完成的话,基本大功告成.设置Charlse 8888端口的代理,访问一个网站试一试,应该就可以看到Charles能成功抓取HTTP的各种信息了 (我失败了...)
扩展阅读 - Ubuntu添加可信任根证书
添加
Ubuntu下添加根证书非常简单, 只要将证书(扩展名为crt)复制到/usr/local/share/ca-certificates
文件夹然后运行update-ca-certificates
即可
[yaxin@ubox ~]$sudo cp xinmu.crt /usr/local/share/ca-certificates [yaxin@ubox ~]$sudo update-ca-certificates Updating certificates in /etc/ssl/certs... 1 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d....done.
删除
直接将/usr/local/share/ca-certificates
对应的证书删除,然后执行update-ca-certificates
[yaxin@ubox ~]$sudo rm -f /usr/local/share/ca-certificates/xinmu.crt [yaxin@ubox ~]$sudo update-ca-certificates Updating certificates in /etc/ssl/certs... 0 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d....done.
注意: 这时候并不会提示1 removed, 但证书是已经被删除了的
原理
其实update-ca-certificates
是一个shell脚本, 使用which
找出update-ca-certificates
的绝对路径,然后打开就可以查看其源码
[yaxin@ubox ~]$which update-ca-certificates /usr/sbin/update-ca-certificates [yaxin@ubox ~]$file /usr/sbin/update-ca-certificates /usr/sbin/update-ca-certificates: POSIX shell script, ASCII text executable
通过阅读源码可以看出, update-ca-certificates
命令的本质其实是将PEM格式的根证书内容附加到/etc/ssl/certs/ca-certificates.crt
, 而/etc/ssl/certs/ca-certificates.crt
中本身就包含了系统自带的各种可信根证书.
Charles - APT repository
初学Ubuntu:Ubuntu16.04系统Charles的配置
Ubuntu添加可信任根证书