프로그래밍/델파이

Wininet Component Suite에서 https로 통신하기

채윤아빠 2010. 3. 12. 18:35
728x90
반응형
서론
앞서 "" 글에서 Wininet Component Suite를 사용하는 방법을 간단하게 살펴보았습니다. 일반적인 HTTP를 통한 통신(GET / POST)이 잘 동작합니다. 본 글에서는 HTTPS를 이용하여 암호화된 안전한 통신 방법에 대해서 살펴 보겠습니다.


암호화를 위한 HTTPS 사용하기
HTTPS 암호화 통신을 위해서 일반적인 HTTP 방식으로 호출하는 것과 거의 동일합니다. 단지 여기에 포트와 암호화 플래그만 더 설정하면 HTTPS 암호화를 통하여 좀더 안전한 통신이 가능합니다.
  with INetHttp do
  try
    INetUrl.Url := EditUrl.Text;

    ServerName := INetUrl.HostName;
    Port := INetUrl.Port; // 포트 할당
    if ('https' = AINetUrl.Scheme) then // https 요청인 경우 암호화를 위한 플래그 설정 필요
      Flags := Flags + [flIgnoreCertCnInvalid, flIgnoreCertDateInvalid, flSecure];

    Open;
    OpenRequest('GET', INetUrl.UrlPath + INetURL.ExtraInfo);
    SendRequest;

    repeat
      strData := InetHttp.GetData;
    until strData = '';
  finally
    CloseRequest;
    Close;
  end;
URL을 "https://localhost/https.html"과 같이 암호화 통신을 사용하는 URL로 작성하여 호출하면 암호화하여 통신되는 것을 확인하실 수 있습니다. 아래는 암호화 통신이 이루어지는지 확인하기 위하여 fiddler로 http 요청을 캡쳐해본 화면입니다.


통신이 암호화되어 이루어 지고 있어서 어떤 내용들이 오고 갔는지 확인할 수 없습니다.


결론
Wininet Component Suite를 이용하여 https로 암호화하여 통신하는 방법에 대해서 살펴보았습니다. 서버에 암호화에 대한 부하를 좀더 줄 수 있지만, 내부 데이터들이 모두 암호화 되어 좀더 안전한 통신이 가능해집니다.


관련자료