在【Charles】移植上台PC的证书我提到了Charles可以使用Proxyman的证书,
现在我又用到了mitmproxy,如何让mitmproxy使用和Charles/Proxyman一样的证书,实现手机装一个证书3个抓包软件都能抓包?
Proxyman导出的.p12证书可以导入到Charles,那.p12如何导入到mitmproxy呢?
mitmproxy官网有提到如何生成并使用自定义证书
https://docs.mitmproxy.org/stable/concepts-certificates/#using-a-custom-server-certificate
~/.mitmproxy是mitmproxy默认存放证书的地方,打开会发现有好几个证书
依据官网的说辞,
By default, mitmproxy will use ~/.mitmproxy/mitmproxy-ca.pem as the certificate authority to generate certificates for all domains for which no custom certificate is provided (see above). You can use your own certificate authority by passing the --set confdir=DIRECTORY option to mitmproxy. Mitmproxy will then look for mitmproxy-ca.pem in the specified directory. If no such file exists, it will be generated automatically.
我们只需要在新目录(比如~/.mitmproxy_custom)中放一个自己的.pem证书(需要重命名为mitmproxy-ca.pem),然后以mitmproxy --set confdir=~/.mitmproxy_custom
启动,mitmproxy就会自动生成其他的证书。
自己的.pem证书从哪里来,前面Charles/Proxyman我们用的是.p12证书,可以转化一下openssl pkcs12 -in mitmproxy-ca.p12 -out mitmproxy-ca.pem -nodes
总结
新建目录~/.mitmproxy_custom
,
将Proxyman.p12
证书放进去并重命名为mitmproxy-ca.p12
,
转为pem证书:openssl pkcs12 -in mitmproxy-ca.p12 -out mitmproxy-ca.pem -nodes
,
启动mitmproxy:mitmproxy --set confdir=~/.mitmproxy_custom
。
如此mitmproxy/Charles/Proxyman的根证书就统一了,手机只需装1个证书,3个抓包软件都能抓包。