Charles Proxy 대신 무료 오픈소스 mitmproxy를 사용해 iOS, Android, Mac 기기의 HTTPS 트래픽을 캡처·분석하는 방법을 단계별로 안내한다. Android 에뮬레이터에 인증서를 설치하는 까다로운 과정까지 구체적으로 다룬다.
핵심 포인트 - mitmproxy란: Charles Proxy와 유사한 오픈소스 HTTP/HTTPS 프록시. 무료이며 여러 환경에서 간단히 설치 가능 - 핵심 장점: 무료 오픈소스 + Python 스크립트로 커스텀 기능 구현 가능 (Charles는 유료) - 실행 방법: mitmproxy(터미널 UI), mitmweb(웹 UI) 두 가지. -p 포트번호로 포트 지정, 기본 8080 - 기기별 프록시 설정: iOS(Wi-Fi 설정 > 프록시 구성 수동), Android(Wi-Fi > 네트워크 설정 관리 > 프록시), Mac(시스템 환경설정 > 네트워크 > 고급 > 프록시) - 인증서 설치: 기기에서 mitm.it 접속 후 플랫폼별 버튼 클릭. iOS는 추가로 설정 > 일반 > 인증서 신뢰 설정에서 mitmproxy 신뢰 활성화 필요 - 제한 사항: HSTS 적용 사이트(Google, GitHub 등)는 접근 불가
상세 정리 - Android 가상 디바이스 생성 시 Play Store 딱지 없는 기종 선택 필수 — Play Store 있으면 프록시 설정 및 adb root 사용 불가 - Android 에뮬레이터 인증서 설치 8단계: SDK PATH 설정 → -writable-system 옵션으로 에뮬레이터 시작 → adb root → 보안 부팅 비활성화(avbctl disable-verification) → 재부팅 → remount → 인증서 push → chmod 664 → 재부팅 - mitmproxy 설치 시 ~/.mitmproxy 디렉토리에 가짜 인증서 자동 생성 - 인증서 파일명 변환: openssl x509 -inform PEM -subject_hash_old 로 해시값 추출해 c8750f0d.0 형태로 rename 후 시스템 인증서 경로에 설치 - 유용한 단축키: F(대문자) — 실시간 자동 스크롤, 스페이스 — 다음 페이지(기본 30개 단위) - --ssl-insecure 옵션: 인증서 오류 발생 시 임시 우회용 - Python 스크립트로 요청 가로채 수정·분석 자동화 가능 — API 디버깅, 앱 트래픽 분석에 유용
왜 읽나: 무료 오픈소스 mitmproxy로 iOS/Android/Mac 모바일 앱 HTTPS 트래픽을 디버깅하는 전체 설정 과정을 단계별로 따라할 수 있어 API 분석·QA 자동화에 바로 활용 가능하다.