설치 과정은 Mac 기준으로 서술한다.
# 설치
$ brew install mitmproxy
# 설치 확인
$ mitmproxy --version
# 인증서 설치
$ sudo security add-trusted-cert -d -r trustRoot -p ssl -k /Library/Keychains/System.keychain $HOME/.mitmproxy/mitmproxy-ca-cert.pem
Charles는 프로그램 실행 시 Proxy를 세팅했다가 종료될 때 복원해 주는 작업을 자동으로 해주는 반면 mitmproxy는 그런 기능이 없다. 사용해 보니 이점이 꽤나 불편했다. 아무튼 실행 및 종료 시 Proxy 세팅했다 복원해 주는 작업을 해줘야 한다.
# 프록시 설정 (8080 포트 사용)
$ networksetup -setwebproxy 'Wi-Fi' localhost 8080
$ networksetup -setsecurewebproxy 'Wi-Fi' localhost 8080
# mitmproxy 실행
$ mitmproxy
실행하고 www.naver.com
로 이동하여 네트워크 트래픽이 캡처되는지 확인해보았는데 잘 동작한다.
위에 서술한대로 종료 후 Proxy 세팅을 복원해준다.
# 프록시 설정 복원
$ networksetup -setwebproxy 'Wi-Fi' localhost 8080 && networksetup -setsecurewebproxy 'Wi-Fi' localhost 8080
매번 커맨드라인으로 Proxy 설정, 설정 복원해주는 작업이 번거로워 쉘 스크립트를 하나 만들어두었다.
$ vi mitmproxy_setting.sh
#!/bin/bash
function proxysetting_restore {
echo "Restore proxy settings"
networksetup -setwebproxystate 'Wi-Fi' off && networksetup -setsecurewebproxystate 'Wi-Fi' off
}
function proxysetting {
echo "Set Proxy setiings"
networksetup -setwebproxy 'Wi-Fi' localhost 8080 && networksetup -setsecurewebproxy 'Wi-Fi' localhost 8080
}