Fiddler를 사용하여 HTTP 요청 헤더에 프록시 자격 증명 추가

인증 프록시 아래의 PC에서도 외부와 통신하고 싶습니다.



인증 프록시 아래의 PC에서 어플리케이션을 이용할 때 외부와의 통신에는 프록시 설정이 필요합니다.

Chrome 및 Firefox와 같은 주요 애플리케이션은 프록시를 설정하는 항목이 있지만 일부 도구에는 설정 항목이 없는 경우가 있습니다.
라고 할까, 없는 것 쪽이 많습니다.

이 경우 Fiddler 를 사용하여 HTTP 요청 헤더에 프록시 자격 증명을 추가하는 것이 유용합니다.

Chocolatey 설치



Chocolatey가 설치되지 않은 경우 설치합시다.

인증 프록시는 다음과 같은 경우 다음 기사를 매우 이해하기 쉽습니다.
인증 프록시 환경에서 chocolatey 설치

Fiddler 설치



다음 명령으로 Fiddler를 설치합니다.
choco install -y fiddler

설치가 완료되면 Fiddler를 시작합니다.

캡처 대상을 Non-Browser로 변경



Fiddler의 왼쪽 하단에 있는 Capturing 의 오른쪽이 All Processes 이면 Non-Browser 로 변경합니다.



이 작업을 수행하면 Firefox 및 Chrome과 같은 웹 브라우저의 통신 정보가 더 이상 표시되지 않아 쉽게 볼 수 있습니다.

CustomRule.js 편집


Rules > Customize Rules 를 클릭하여 CustomRule.js 를 엽니다.


class Handlers 라는 부분이 있으므로 거기에 다음 코드를 추가합니다.
class Handlers
{
    public static RulesOption("Add Proxy-Authorization")
    var m_AddProxyAuthorization: boolean = false;

이런 느낌이 듭니다.



아래쪽으로 스크롤하면 OnBeforeRequest 라는 함수가 있으므로 다음 코드를 추가합니다.
static function OnBeforeRequest(oSession: Session) {
    if (m_AddProxyAuthorization) {
        oSession.oRequest["Proxy-Authorization"] = "Basic <プロキシの認証情報>";
    }
<プロキシの認証情報> 의 부분은 <ユーザー名>:<パスワード> 를 Base64 로 인코딩한 문자열이 됩니다.

예를 들어,
  • 프록시 사용자 이름: proxyuser
  • 프록시 암호: proxypass

  • 의 경우 Base64로 인코딩한 문자열은 cHJveHl1c2VyOnByb3h5cGFzcw==이므로 다음과 같습니다.
    oSession.oRequest["Proxy-Authorization"] = "Basic cHJveHl1c2VyOnByb3h5cGFzcw=="
    

    Base64로 인코딩하는 방법은 다음을 참조하십시오.

    쉘 스크립트로 Base64 인코딩



    Mac이나 Linux등의 경우, 이하의 커멘드로 Base64의 encode를 할 수 있습니다.
    $ echo -n 'proxyuser:proxypass' | base64
    cHJveHl1c2VyOnByb3h5cGFzcw==
    

    명령 프롬프트에서 Base64 인코딩



    Windows의 경우 다음 명령으로 Base64를 인코딩할 수 있습니다.
    (TEMP 폴더에 중간 파일이 생성됩니다)
    > echo proxyuser:proxypass | more > %temp%\src.txt && certutil -f -encode %temp%\src.txt %temp%\dest.txt && type %temp%\dest.txt
    -----BEGIN CERTIFICATE-----
    cHJveHl1c2VyOnByb3h5cGFzcyANCg0K
    -----END CERTIFICATE-----
    

    커맨드의 자세한 해설은, 별도로 기사에 정리하고 있으므로, 꼭 봐 주세요.
    명령 프롬프트만으로 Base64 인코딩

    결국 OnBeforeRequest 는 이런 느낌이 듭니다.



    이 상태에서 CustomRule.js를 저장합니다.

    Add Proxy-Authorization 사용




    Rules > Add Proxy-Authorization 를 유효하게 합니다. 그러면 HTTP 통신에 프록시 자격 증명이 추가됩니다!

    사이고에게



    이하의 기사를 참고로 했습니다. 고마워요.
  • 인증 프록시를 Fiddler에서 초과
  • Windows 용 패키지 관리 소프트웨어 "chocolatey"가 편리 / chocolatey 설치
  • Windows 표준 기능으로 base64의 encode / decode 를 실시한다
  • 인증 프록시 환경에서 chocolatey 설치
  • 좋은 웹페이지 즐겨찾기