Ubuntu16.04 安装Charles | apt-get

标签: none

使用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.cercharles-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添加可信任根证书


扫描二维码,在手机上阅读!

添加新评论