문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

HTTPS, TCP를 통한 SSL 및 SOAP 보안의 인증서 유효성 검사 차이점

 

HTTPS(HTTP를 통한 TLS(전송 계층 보안)) 또는 TCP를 통한 TLS와 함께 메시지 계층(SOAP) 보안이 있는 WCF(Windows Communication Foundation)의 인증서를 사용할 수 있습니다.이 항목에서는 이러한 인증서의 유효성을 검사하는 방법의 차이점에 대해 설명합니다.

HTTPS를 사용하여 클라이언트와 서비스 간에 통신하는 경우 클라이언트에서 서비스를 인증하는 데 사용하는 인증서는 신뢰 체인을 지원해야 합니다.즉, 신뢰할 수 있는 루트 인증 기관에 연결되어야 합니다.연결되지 않은 경우 HTTP 계층에서 "원격 서버에서 (403) 사용할 수 없음 오류를 반환했습니다."라는 메시지와 함께 WebException이 발생합니다. WCF는 이 예외를 MessageSecurityException으로 표시합니다.

HTTPS를 사용하여 클라이언트와 서비스 간에 통신하는 경우 서버에서 인증하는 데 사용하는 인증서는 신뢰 체인을 기본적으로 지원해야 합니다.즉, 신뢰할 수 있는 루트 인증 기관에 연결되어야 합니다.인증서가 해지되었는지 여부를 확인하기 위해 온라인 확인을 수행하지는 않습니다.다음 코드에서처럼 RemoteCertificateValidationCallback 콜백을 등록하여 이 동작을 재정의할 수 있습니다.

ServicePointManager.ServerCertificateValidationCallback +=
    new RemoteCertificateValidationCallback(ValidateServerCertificate);

여기서 ValidateServerCertificate의 서명은 다음과 같습니다.

public static bool ValidateServerCertificate(
  object sender,
  X509Certificate certificate,
  X509Chain chain,
  SslPolicyErrors sslPolicyErrors)

ValidateServerCertificate를 구현하면 클라이언트 응용 프로그램 개발자가 서비스 인증서의 유효성을 검사하는 데 필요하다고 판단하는 확인 사항을 수행할 수 있습니다.

TCP를 통한 SSL(Secure Sockets Layer) 또는 SOAP 메시지 보안을 사용하는 경우 X509ClientCertificateAuthentication 클래스의 CertificateValidationMode 속성 값에 따라 클라이언트 인증서의 유효성을 검사합니다.속성은 X509CertificateValidationMode 값 중 하나로 설정됩니다. X509ClientCertificateAuthentication 클래스의 RevocationMode 속성 값에 따라 해지 확인을 수행합니다.속성은 X509RevocationMode 값 중 하나로 설정됩니다.

myServiceHost.Credentials.ClientCertificate.Authentication.
    CertificateValidationMode=
    X509CertificateValidationMode.PeerOrChainTrust;       

myServiceHost.Credentials.ClientCertificate.Authentication.
    RevocationMode=X509RevocationMode.Offline; 

TCP를 통한 SSL 또는 SOAP 메시지 보안을 사용하는 경우 X509ServiceCertificateAuthentication 클래스의 CertificateValidationMode 속성 값에 따라 서비스 인증서의 유효성을 검사합니다.속성은 X509CertificateValidationMode 값 중 하나로 설정됩니다.

X509ServiceCertificateAuthentication 클래스의 RevocationMode 속성 값에 따라 해지 확인을 수행합니다.속성은 X509RevocationMode 값 중 하나로 설정됩니다.

myClient.ClientCredentials.ServiceCertificate.
    Authentication.CertificateValidationMode=
    X509CertificateValidationMode.PeerOrChainTrust;
myClient.ClientCredentials.ServiceCertificate.Authentication.
    RevocationMode = X509RevocationMode.Offline;
표시: