클래스는 System.Net SSL(Secure Socket Layer) 연결을 선택하고 유효성을 검사 System.Security.Cryptography.X509Certificates 하는 여러 가지 방법을 지원합니다. 클라이언트는 하나 이상의 인증서를 선택하여 서버에 인증할 수 있습니다. 서버는 클라이언트 인증서에 인증을 위한 하나 이상의 특정 특성이 있어야 할 수 있습니다.
정의
인증서는 공개 키, 특성(예: 버전 번호, 일련 번호 및 만료 날짜) 및 인증 기관의 디지털 서명을 포함하는 ASCII 바이트 스트림입니다. 인증서는 암호화된 연결을 설정하거나 서버에 클라이언트를 인증하는 데 사용됩니다.
클라이언트 인증서 선택 및 유효성 검사
클라이언트는 특정 SSL 연결에 대해 하나 이상의 인증서를 선택할 수 있습니다. 클라이언트 인증서는 웹 서버 또는 SMTP 메일 서버에 대한 SSL 연결과 연결할 수 있습니다. 클라이언트는 인증서를 X509Certificate 또는 X509Certificate2 클래스 개체 컬렉션에 추가합니다. 예를 들어 전자 메일을 사용할 경우, 인증서 컬렉션은 클래스의 X509CertificateCollection와 관련된 ClientCertificates 속성에 연결된 SmtpClient의 인스턴스입니다. HttpWebRequest 클래스에 비슷한 ClientCertificates 속성이 있습니다.
X509Certificate 클래스와 X509Certificate2 클래스의 주요 차이점은 프라이빗 키가 X509Certificate 클래스의 인증서 저장소에 있어야 한다는 것입니다.
인증서가 컬렉션에 추가되고 특정 SSL 연결과 연결된 경우에도 서버에서 인증서를 요청하지 않는 한 서버에 인증서가 전송되지 않습니다. 여러 클라이언트 인증서가 연결에 설정된 경우 서버에서 제공하는 인증서 발급자 목록과 클라이언트 인증서 발급자 이름 간의 일치를 고려하는 알고리즘에 따라 가장 적합한 인증서가 사용됩니다.
클래스는 SslStream SSL 핸드셰이크를 훨씬 더 자세히 제어합니다. 클라이언트는 사용할 클라이언트 인증서를 선택할 대리자를 지정할 수 있습니다.
원격 서버는 클라이언트 인증서가 유효하고, 현재이며, 적절한 인증 기관에서 서명했는지 확인할 수 있습니다. 인증서 유효성 검사를 적용하기 위해 대리자를 ServerCertificateValidationCallback 추가할 수 있습니다.
클라이언트 인증서 선택
.NET Framework는 다음과 같은 방식으로 서버에 표시할 클라이언트 인증서를 선택합니다.
클라이언트 인증서가 이전에 서버에 제공된 경우 인증서는 처음 표시될 때 캐시되고 후속 클라이언트 인증서 요청에 다시 사용됩니다.
대리자가 있는 경우 항상 대리자의 결과를 클라이언트 인증서로 사용하여 선택합니다. 가능하면 캐시된 인증서를 사용하려고 하지만 대리자가 null을 반환하고 인증서 컬렉션이 비어 있지 않은 경우 캐시된 익명 자격 증명을 사용하지 마세요.
클라이언트 인증서의 첫 번째 과제인 경우 프레임워크는 서버에서 X509Certificate 제공하는 인증서 발급자 목록과 클라이언트 인증서 발급자 이름 간의 일치 항목을 찾아 연결과 연결된 인증서 또는 X509Certificate2 클래스 개체를 열거합니다. 일치하는 첫 번째 인증서가 서버로 전송됩니다. 일치하는 인증서가 없거나 인증서 컬렉션이 비어 있으면 익명 자격 증명이 서버로 전송됩니다.
인증서 구성 도구
클라이언트 및 서버 인증서 구성에 사용할 수 있는 도구는 다양합니다.
Winhttpcertcfg.exe 도구를 사용하여 클라이언트 인증서를 구성할 수 있습니다. Winhttpcertcfg.exe 도구는 Windows Server 2003 리소스 키트를 사용하는 도구 중 하나로 제공됩니다. 이 도구는 www.microsoft.comWindows Server 2003 리소스 키트 도구의 일부로 다운로드할 수도 있습니다.
HttpCfg.exe 도구를 사용하여 클래스에 대한 서버 인증서를 HttpListener 구성할 수 있습니다. HttpCfg.exe 도구는 Windows Server 2003 및 Windows XP 서비스 팩 2에 대한 지원 도구 중 하나로 제공됩니다. HttpCfg.exe 및 기타 지원 도구는 기본적으로 Windows Server 2003 또는 Windows XP에 설치되지 않습니다. Windows Server 2003에서. 지원 도구는 Windows Server 2003 CD-ROM의 다음 폴더 및 파일과 별도로 설치됩니다.
\Support\Tools\Suptools.msi
Windows XP 서비스 팩 2에서 사용하기 위해 Windows XP 지원 도구는 www.microsoft.com다운로드로 사용할 수 있습니다.
HttpCfg.exe 도구 버전에 대한 소스 코드는 Windows Server SDK를 사용하여 샘플로도 제공됩니다. HttpCfg.exe 샘플의 소스 코드는 다음 폴더 아래의 Windows SDK의 일부로 네트워킹 샘플과 함께 기본적으로 설치됩니다.
C:\Program Files\Microsoft SDKs\Windows\v1.0\Samples\NetDS\http\serviceconfig
이러한 도구 외에도 X509Certificate 및 X509Certificate2 클래스는 파일 시스템에서 인증서를 로드하는 메서드를 제공합니다.
참고하십시오
.NET