今天把一个mitmproxy脚本部署到服务器上,结果遇到很多坑,在此记录一些。
运行mitmdump后出现下面这个错误
<< Cannot establish TLS with client (sni: www.baicu.com): TlsException("SSL handshake error: Error([('SSL routines', 'ssl3_read_bytes', 'sslv3 alert certificate unknown')])")
这是因为没安装证书,安装mitmproxy后会在~/.mitmproxy
目录下生产证书文件,首先进入此目录:
cd ~/.mitmproxy
转换证书格式
openssl x509 -in mitmproxy-ca-cert.pem -inform PEM -out mitmproxy-ca-cert.crt
复制证书
sudo mkdir /usr/share/ca-certificates/extra
sudo cp mitmproxy-ca-cert.crt
/usr/share/ca-certificates/extra/mitmproxy-ca-cert.crt
把证书导入到ubuntu系统
# ui模式,进入后选yes,然后按空格选择你的证书,回车确认
sudo dpkg-reconfigure ca-certificates
# 无交互模式
sudo update-ca-certificates
到这里只是把证书导入到了ubuntu系统系统,如果你需要使用Chrome连接代理,那还需要把证书导入到Chrome中。这里介绍的是命令行导入的方法
安装证书管理工具
apt-get install libnss3-tools
进入nssdb目录
cd ~/.pki/nssdb
ls
# 输出
# cert9.db
导入证书到Chrome(如果该目录下的文件是cert8.db则不需要sdl前缀)
certutil -d sql:$HOME/.pki/nssdb -A -t "CT,," -n "证书名" -a -i ~/.mitmproxy/mitmproxy-ca-cert.crt
查看证书是否导入成功
certutil -d sql:$HOME/.pki/nssdb -L
# 输出
Certificate Nickname Trust Attributes
SSL,S/MIME,JAR/XPI
mitmproxyAgent C,,
Powered by Froala Editor
发表评论 (对文章评论)