Postman proxy HTTPS 요청 가로채기
개요
Postman에는 프록시 서버를 만들어 모든 네트워크 HTTP/HTTPS 요청을 가로채 분석할 수 있다.
다만 HTTPS 처리를 위해서는 특별한 설정이 필요하다.
https://learning.postman.com/docs/sending-requests/capturing-request-data/capturing-https-traffic/
Capturing HTTPS traffic | Postman Learning Center
Capturing HTTPS traffic: documentation for Postman, the collaboration platform for API development. Create better APIs—faster.
learning.postman.com
원리
1. 브라우저가 특정 사이트에 HTTPS 요청을 보내려고 할 때
2. 원본 사이트가 아닌 Postman 프록시 서버로 요청을 보내고(windows의 프록시 설정을 통해)
3. Postman 서버는 자체 루트 인증서를 통해 발급한 가짜(?)인증서를 브라우저로 보내 https handshake를 한다.
문제점
Postman의 자체 루트 인증서는 신뢰할 수 없는 인증서이다.
따라서 운영체제에 인증서를 등록해야 한다.
그러나, 운영체제에 인증서를 Postman의 가이드(위 링크)를 따라 잘 등록했음에도 불구하고
크롬에서 https 요청을 보내면 ERR:ERR_CERT_INVALID 오류가 발생한다.
원인
크롬은 운영체제의 루트 인증서를 싸그리 무시하고(...)
크롬 자체 루트 인증서를 사용한다.
(2021년부터인가 적용된 정책이라고 함)
따라서 OS에 루트 인증서를 등록해봤자 아무런 소용이 없다.
해결책 / 결론
chrome://flags/
에 접속해 Chrome Root Store 를 Disabled해야한다.
그래도 문제가 해결되지 않으면... OpenSSL이 1.1.1버전인지 확인해야 한다.
(postman이 3.x 버전 미지원)
이런 정보가 왜 알려지지 않은건지(내가 못찾은건가... 아무리 구글링해봐도 명확한 해결책이 없었다) 의문이다.