Charles 에서 HTTPS 패킷 확인하기

발생일: 2012.01.31

문제:
HTTP 패킷 확인 툴로 찰스(Charles)를 주로 사용하고 있다.
이번에 HTTPS 요청을 테스트할 게 있어서 모니터링을 시도했으나, 자꾸 Fail이 난다.

브라우저는 크롬을 사용하고 있다.

왜 그런 걸까.


해결책:
혹시나 해서 익스플로러에서 HTTPS 모니터링을 시도해보니, 신뢰할 수 있는 인증서냐고 물어본다.
신뢰할 수 있다고 체크하고 진행하니, IE에서는 정상적으로 보인다.

아무래도 크롬에서 인증서를 신뢰할 수 없어 튕겨내는 것 같다.


혹시나 해서, 찰스 가이드를 찾아보니 찰스가 SSL Proxying을 처리하는 방법에 대해 나와있다.

찰스는 브라우저와 SSL 웹 서버의 중간자(man-in-the-middle HTTPS Proxy)가 되는 방법으로 이를 처리한다.
브라우저는 서버의 인증서를 바라보는 대신에, 찰스가 동적으로 생성한 인증서(Charles CA Certificate)를 바라본다.
마찬가지로 응답 시에는 서버의 인증서를 찰스가 받고, 브라우저는 찰스의 인증서를 받는다.
이 방법으로 찰스는 암호화되지 않은 plain text를 볼 수 있다.
단, 브라우저가 찰스가 생성한 인증서를 신뢰해야 한다.

따라서, IE에서 그랬던 것처럼,
브라우저는 Charles CA Certificate가 신뢰할 수 있는 인증서이냐는 보안 경고를 띄운다.
신뢰할 수 있는 것이라 선택하면 진행할 수 있는 것이고, 아니라면 더 이상 모니터링 할 수 없다.

크롬은 IE와 다르게 신뢰할 수 없는 인증서면 암묵적으로 무시하나보다.
아니면 나도 모르게 언젠가 신뢰할 수 없다고 했다던가...

 
여튼, 요골 해결하려면 찰스가 동적으로 생성한 인증서를 신뢰할 수 있다고 크롬에게 알려줘야 한다.

  1. 크롬에서 옵션 > 고급설정 > HTTPS/SSL > 인증서 관리를 클릭한다.
  2. '신뢰할 수 있는 루트 인증기관' 탭을 선택하고, '가져오기' 버튼을 클릭한다.
  3. 찰스가 설치되어 있는 폴더에서 charles-proxy-ssl-proxying-certificate.crt 파일을 찾아 가져온다.
  4. 가져온 인증서를 신뢰할 수 있는 게 확실하냐고 묻는다.
     그렇다고 하면 크롬은 찰스가 생성한 인증서를 쭈-욱 신뢰한다.


 
이 부분을 설정해도 해결되지 않았다면, 찰스에서 SSL 프록시를 사용할 것이라 체크했는지 확인해본다.

  1. 찰스에서 Proxy > Proxy Settings > SSL 탭에서 'Enable SSL Proxing'을 선택한다.
  2. Locations에 모니터링 할 호스트를 추가한다. 모든 사이트를 모니터링하고 싶을 경우, '*' 을 추가하면 된다.



요호~~ 이제 HTTPS 패킷 확인이 가능해졌다~~~~
 

카테고리

분류 전체보기 (711)
About me. (6)
Daylogs (676)
영어공부 (0)
My works - 추억 (29)
비공개 (0)