방법: 클라이언트측 인증서를 사용 하 여 ASP.NET 응용 프로그램 보안

요약

인터넷 뱅킹 사이트에서 같은 보안 수준이 높은 웹 응용 프로그램에 대 한 사용자 인증을 위해 사용자 이름과 암호 조합이 보다 보다 안전한 솔루션을 구현 하는 것이 좋습니다. 사용자의 id를 확인 하기 위해 클라이언트 쪽 디지털 인증서를 사용할 수 있습니다. 또한 클라이언트 쪽 디지털 인증서를 서버 필요한 경우 Windows 계정에 매핑할 수 있습니다.

맨 위로

요구 사항

다음은 권장된 하드웨어, 소프트웨어, 네트워크 인프라 및 필요한 서비스 팩입니다.
  • Microsoft Windows 2000 서비스 팩 2 서버
  • Microsoft Internet Explorer 6.0
  • Microsoft Visual Studio.NET
  • Microsoft 인증서 서비스 (자체 인증서를 생성 해야) 하는 경우
이 문서에서는 독자가 다음 항목에 익숙하다고 가정합니다:
  • Visual Basic 또는 C#를 사용 하 여 ASP.NET 개발
  • Microsoft 인터넷 정보 서비스 (IIS) 구성
맨 위로

ASP.NET 웹 응용 프로그램 만들기

이 단원에서는 간단한 ASP.NET 응용 프로그램을 만들 수 있습니다. 다음 절에서는이 응용 프로그램을 보호 하려면 클라이언트 인증서 인증을 사용 합니다.

  1. Visual Studio.NET을 시작한 다음 SecureSite 라는 새 ASP.NET 웹 응용 프로그램 프로젝트를 만듭니다.
  2. WebForm1.aspx 웹 폼을 도구 상자에서 Label 컨트롤을 끌어 및 다음 ID 속성이 greetingLabel로 설정 합니다.
  3. WebForm1.aspx에서 두 번째 Label 컨트롤을 끌어 및 다음 ID 속성이 certDataLabel로 설정 합니다.
  4. Page_Load 이벤트 프로시저에 다음 코드를 추가 합니다.
    'Visual BasicDim username As String
    userName = User.Identity.Name
    greetingLabel.Text = "Welcome " & userName
    Dim cert As HttpClientCertificate = Request.ClientCertificate
    If cert.IsPresent Then
    'Get the Organization (O) field from the Subject section.
    certDataLabel.Text = cert.Get("Subject O")
    Else
    certDataLabel.Text = "No certificate was found."
    End If

    //Visual C#string userName;
    userName = User.Identity.Name;
    greetingLabel.Text = "Welcome " + userName;
    HttpClientCertificate cert = Request.ClientCertificate;
    if (cert.IsPresent)
    certDataLabel.Text = cert.Get("SUBJECT O");
    else
    certDataLabel.Text="No certificate was found.";

  5. 빌드 및 프로젝트를 저장 하 고 Visual Studio 닫습니다.
  6. Internet Explorer 시작한 다음 다음 페이지를 찾습니다.
    http://localhost/SecureSite/WebForm1.aspx
    "시작" 페이지에 표시 됩니다 "인증서를 찾을 수" 메시지를 확인 합니다. 확인 페이지는 사용자가 인증 되지 않아 사용자 이름이 표시 되지 않습니다.
  7. Internet Explorer를 닫습니다.
맨 위로

인증서 기반 인증을 위해 웹 서버를 구성 합니다.

이 단원에서는 SecureSite 프로젝트 인증을 위해 인증서를 사용 하도록 구성할 수 있습니다. 클라이언트 인증서를 사용 하려면 서버 쪽 인증서를 설치 해야 합니다. 기존 서버 인증서는 인증 기관에서 사용할 수 있습니다 또는 Microsoft 인증서 서비스를 사용한 서버 쪽 인증서를 생성할 수 있습니다.

맨 위로

서버 쪽 인증서 요청을 만들려면

  1. 시작 메뉴에서 프로그램을 가리키고 관리 도구가리킨 다음 인터넷 서비스 관리자를 누릅니다.
  2. 서버의 노드를 확장 한 다음 기본 웹 사이트를 클릭 합니다.
  3. 동작 메뉴에서 속성을 클릭 합니다.
  4. 디렉터리 보안 탭에서 서버 인증서를 클릭 합니다. 마법사의 다음이 단계를 수행 합니다.
    1. 마법사의 첫 페이지에서 다음 을 클릭 합니다.
    2. 서버 인증서 페이지에서 새 인증서 만들기를 클릭 한 후 다음을 클릭 합니다.
    3. 요청 연기 또는 즉시 요청 페이지에서 요청을 지금 준비 하지만 나중에 보냅니다를 클릭 한 후 다음을 클릭 합니다.
    4. 이름 및 보안 설정 페이지에서 기본 설정을 선택한 후 다음을 클릭 합니다.
    5. 조직 정보 페이지에서 MSDN 조직에 대 한 입력 하 고 How To 문서 조직 구성 단위에 대 한 입력 한 후 다음을 클릭 합니다.
    6. 사이트 일반 이름 페이지에서 localhost입력 하 고 을 클릭 합니다.
    7. 지역 정보 페이지에서 해당 국가, 지역 및 도시 정보를 입력 하 고 을 클릭 합니다.
    8. 인증서 요청 파일 이름 페이지에서 기본 파일 이름 (일반적으로 c:\certreq.txt)를 적용 하 고 을 클릭 합니다.
    9. 요청 파일 요약 페이지에서 세부 사항을 모두 올바른지 및 다음을 누릅니다 확인 하십시오.
    10. 마법사를 닫으려면 마침 을 클릭 합니다.
  5. 생성 되는 인증서 파일을 열고 인증서 파일의 전체 내용을 클립보드로 복사 합니다.
맨 위로

서버 쪽 인증서 요청 제출

  1. Internet Explorer 시작한 다음 다음 페이지를 찾습니다.
    http://localhost/CertSrv
    참고: Microsoft 인증서 서비스를 설치 해야 합니다.
  2. 마법사의 다음이 단계를 수행 합니다.
    1. 인증서 요청을 누르고 을 누릅니다.
    2. 요청 종류 선택 페이지에서 고급 요청을 누르고 을 누릅니다.
    3. 고급 인증서 요청 페이지에서 64 기수로 사용 하 여 인증서 요청 제출 인코드된 PKCS #10 파일을클릭 한 후 다음을 클릭 합니다.
    4. 저장 된 요청 제출 페이지에서 64 기수로 인코드된 인증서 요청 (PKCS #10 또는 #7) 상자를 클릭 하 고 앞서 클립보드로 복사한 인증서 요청을 붙여 넣으려면 CTRL + V 키 조합을 누릅니다. 전송을 클릭 합니다.
  3. Internet Explorer를 닫습니다.
맨 위로

서버 쪽 인증서를

  1. 시작 메뉴에서 프로그램가리키고 관리 도구가리킨 다음 인증 기관을 누릅니다.
  2. 인증 기관에 대 한 노드를 확장 한 다음 대기 중인 요청을 선택 합니다.
  3. 방금 제출한 인증서 요청을 선택 합니다. 동작 메뉴에서 모든 작업가리킨 다음 발급을 클릭 하 고
  4. 발급 된 인증서 폴더에 인증서가 나타나는지 확인 하 고를 볼 인증서를 두 번 클릭 합니다.
  5. 자세히 탭에서 파일에 복사를 클릭 합니다. 인증서를 Base 64 인코딩 X.509 인증서를 C:\Servercert.cer로 저장.
  6. 인증서 속성 대화 상자를 닫습니다.
  7. 인증 기관 도구를 닫습니다.
맨 위로

서버 쪽 인증서를 설치 하려면

  1. 시작 메뉴에서 프로그램을 가리키고 관리 도구가리킨 다음 인터넷 서비스 관리자를 누릅니다.
  2. 서버의 노드를 확장 한 다음 기본 웹 사이트를 클릭 합니다.
  3. 동작 메뉴에서 속성을 클릭 합니다.
  4. 디렉터리 보안 탭에서 서버 인증서를 클릭 합니다. 마법사의 다음이 단계를 수행 합니다.
    1. 마법사의 첫 페이지에서 다음 을 클릭 합니다.
    2. 인증서를 설치 하려면 보류 중인 요청 처리 클릭 한 후 다음을 클릭 합니다.
    3. 이전에 저장 된 C:\Servercert.cer 인증서 파일을 찾습니다. 다음 을 두 번 클릭 한 다음 마침을 클릭 합니다.
  5. 속성 대화 상자를 닫으려면 확인 을 클릭 합니다.
맨 위로

클라이언트 인증서 및 SSL SecureSite 사이트를 구성 하려면

  1. 인터넷 서비스 관리자에서 SecureSite 하위 웹을 선택 하 고 속성을 봅니다.
  2. 마법사의 다음이 단계를 수행 합니다.
    1. 디렉터리 보안 탭의 보안 통신 섹션에서 편집 을 클릭 합니다.
    2. 보안 채널 필요 (SSL) 확인란을 선택 합니다. 그러면이 하위 웹에 통신이 암호화 됩니다.
    3. 클라이언트 인증서 필요 확인란을 선택 합니다. 이렇게 하면 사이트의 클라이언트 인증서가 설치 되어 있는 사용자만 볼 수 있습니다.
    4. 클라이언트 인증서 매핑 사용 확인란을 선택 합니다. Windows 사용자 계정에 클라이언트 인증서를 매핑하는 데 사용 됩니다.
    5. 편집을 클릭 합니다. 각 인증서는 개별 Windows 계정에 매핑할 수 있습니다 또는 동일한 Windows 계정에 여러 인증서를 매핑할 수 있는지 확인 합니다.
    6. 다 수-1 탭의 매핑 규칙을 추가 하려면 추가 클릭 합니다. 이 규칙 매핑 규칙이름을 지정 하 고 을 클릭 합니다.
    7. 인증서의 제목 구역의 O 하위 필드 (조직) "MSDN" 조건을 마다 있는 새 규칙을 만들려면 새로 만들기 를 클릭 합니다. 인증서의 "MSDN" 조직 특성을 포함 하는 사용자에 게 매핑을 적용 하려면 확인 을 클릭 합니다. 프로덕션 환경에서 매핑 규칙 엄격한 및 종종 제목을 뿐만 아니라 인증서 발급자 유효성을 검사 합니다. 다음을 클릭합니다.
    8. 매핑 페이지에서 이 인증서를 로그온 인증 수락을 선택 합니다. MSDN 사용자에 매핑할 Windows 계정을 선택 하려면 찾아보기 를 클릭 합니다. 이 예에서 관리자 계정을 사용 합니다. (실제 응용 프로그램에서는 전용된 Windows 계정을 만들면 제한 된 권한을 사용 하 여.) 올바른 암호를 입력 했는지 확인 하십시오.
    9. 마침을 클릭 한 다음 암호를 확인 합니다.
  3. 계정 매핑 대화 상자를 닫으려면 확인 을 클릭 합니다.
  4. 보안 통신 대화 상자를 닫으려면 확인 을 클릭 합니다. 자식 파일 및 폴더 설정을 적용할 것인지 묻는 모두 선택을 클릭 한 다음 확인을 클릭 합니다.
  5. SecureSite 속성 대화 상자를 닫으려면 확인 을 클릭 합니다.
맨 위로

인증서 기반 인증을 확인 하려면

  1. Internet Explorer 시작한 다음 다음 페이지를 찾습니다.
    https://localhost/SecureSite/WebForm1.aspx
    보안 프로토콜 https를 사용 하는 것을 확인 합니다.
  2. 클라이언트 인증서 필요 메시지가 있는지 확인 합니다.
  3. Internet Explorer를 닫습니다.
맨 위로

클라이언트 인증서 설치

이 단원에서는 클라이언트측 인증서를 설치합니다. 인증 기관의 인증서를 사용 하거나 Microsoft 인증서 서비스를 사용 하 여 자체 인증서를 생성 합니다.

맨 위로

클라이언트 인증서를 요청 하려면

  1. Internet Explorer 시작한 다음 다음 페이지를 찾습니다.
    http://localhost/CertSrv
  2. 마법사의 다음이 단계를 수행 합니다.
    1. 인증서 요청을 누르고 을 누릅니다.
    2. 요청 종류 선택 페이지에서 웹 브라우저 인증서를 클릭 한 후 다음을 클릭 합니다.
    3. 필요한 정보를 입력 합니다. MSDN 회사 텍스트 상자에 입력 했는지 확인 하십시오.
    4. 요청을 완료 하려면 제출 을 클릭 합니다.
  3. Internet Explorer를 닫습니다.
맨 위로

클라이언트 인증서를 발급 하려면

  1. 관리 도구 프로그램 그룹에서 인증 기관 도구를 시작 합니다.
  2. 인증 기관에 대 한 노드를 확장 한 다음 대기 중인 요청을 선택 합니다.
  3. 방금 제출한 인증서 요청을 선택 합니다. 동작 메뉴에서 모든 작업가리킨 다음 발급을 클릭 하 고
  4. 발급 된 인증서 폴더에 인증서가 나타나는지 확인 하 고를 볼 인증서를 두 번 클릭 합니다.
  5. 자세히 탭에서 파일에 복사를 클릭 합니다. 인증서를 Base 64 인코딩 X.509 인증서를 C:\Clientcert.cer로 저장.
  6. 인증서 속성 대화 상자를 닫습니다.
  7. 인증 기관 도구를 닫습니다.
맨 위로

클라이언트 인증서를 설치 하려면

  1. Windows 탐색기를 열고 Clientcert.cer 인증서 파일을 두 번 클릭 합니다.
  2. 인증서 가져오기 마법사에서 다음이 단계를 수행 합니다.
    1. 마법사의 첫 페이지에서 인증서 설치를 클릭 하 고 을 클릭 합니다.
    2. 인증서 종류 기준으로 인증서 저장소를 자동으로 선택 확인란을 선택한 후 다음을 클릭 합니다.
    3. 마법사를 완료 하려면 마침 을 클릭 합니다.
  3. 확인 메시지 상자를 닫고 인증서를 닫으려면 확인 누릅니다.
맨 위로

작동 하는지 확인

이 섹션에서 "MSDN"로 회사 수 지정 인증서를 사용 하 여 클라이언트 응용 프로그램을 SecureSite 사이트 볼 있는지 확인 합니다. 사용자 매핑 규칙에 지정 된 계정에 매핑됩니다.

  1. Internet Explorer 시작한 다음 다음 페이지를 찾습니다.
    https://localhost/SecureSite/WebForm1.aspx
  2. 확인:
    • 웹 페이지가 나타납니다.
    • 적절 한 Windows 계정이 사용 됩니다.
    • "MSDN" 조직 인증서에서 읽힙니다.
맨 위로

참조

Secure Sockets Layer (SSL) 웹 사이트의 보안을 사용 하는 방법에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조 하려면 아래 문서 번호를 클릭 합니다.

298805 방법: 인터넷 정보 서비스에서 웹 사이트와 상호 작용 하는 모든 고객에 대하여 SSL 활성화
맨 위로
속성

문서 ID: 315588 - 마지막 검토: 2017. 2. 7. - 수정: 1

피드백