액세스 보안 <액세스>

개요

요소를 <access> 사용하면 웹 사이트 또는 애플리케이션이 인증에 클라이언트 인증서를 사용하는지 여부를 구성할 수 있으며 이러한 인증서를 암호화하는 데 필요한 암호화 강도를 정의할 수 있습니다.

<access> 요소는 다음 값 중 하나로 설정할 수 있는 sslFlags 특성을 포함합니다.

  • 없음. 이 기본 설정은 사이트 또는 애플리케이션에 대해 SSL을 사용하지 않도록 설정합니다.
  • Ssl. 사이트 또는 애플리케이션에는 SSL이 필요합니다.
  • SslNegotiateCert. 사이트 또는 애플리케이션은 인증을 위해 클라이언트 인증서를 허용합니다.
  • SslRequireCert. 사이트 또는 애플리케이션에는 인증을 위해 클라이언트 인증서가 필요합니다.
  • Ssl128. 사이트 또는 애플리케이션에는 128비트 SSL 인증서 암호화가 필요합니다.

액세스 요소를 사용하여 클라이언트 인증서를 요구하도록 사이트, 애플리케이션 또는 가상 디렉터리를 구성할 수 있습니다. 이렇게 하려면 사이트 또는 애플리케이션에 대한 HTTPS 바인딩을 설정한 다음 CA(인증 기관)에서 인증서를 요청하고 받습니다. 인증서는 인터넷 서버 인증서, 도메인 서버 인증서 또는 자체 서명된 서버 인증서일 수 있습니다. 인터넷 서버 인증서를 요청하면 CA에서 서버 또는 서버에 인증서를 발급해야 합니다. 도메인 서버 인증서는 회사의 도메인에서 실행되는 CA 컴퓨터에서 발급되며 인증서를 설치한 직원만 내부 리소스에 대한 액세스를 제어하는 데 도움이 될 수 있습니다. 자체 서명된 인증서를 사용하여 타사 인증서 문제를 해결하거나, IIS(인터넷 정보 서비스) 7을 원격으로 관리하거나, 서버와 선택한 사용자 그룹 간에 보안 프라이빗 채널을 만들거나, SSL을 사용하는 애플리케이션 기능을 테스트할 수 있습니다.

호환성

버전 참고
IIS 10.0 <access> 요소가 IIS 10.0에서 수정되지 않았습니다.
IIS 8.5 <access> 요소가 IIS 8.5에서 수정되지 않았습니다.
IIS 8.0 <access> 요소가 IIS 8.0에서 수정되지 않았습니다.
IIS 7.5 <access> 요소가 IIS 7.5에서 수정되지 않았습니다.
IIS 7.0 요소는 <access> IIS 7.0에서 도입되었습니다.
IIS 6.0 요소는 <access> IIS 6.0 SSLAlwaysNegoClientCertAccessSSLFlags 메타베이스 속성을 대체합니다.

설치 프로그램

요소는 <access> IIS 7의 기본 설치에 포함됩니다.

방법

보안 소켓 계층을 요구하는 방법

  1. IIS(인터넷 정보 서비스) 관리자를 엽니다.

    • Windows Server 2012 또는 Windows Server 2012 R2를 사용하는 경우:

      • 작업 표시줄에서 서버 관리자 클릭하고 도구를 클릭한 다음 IIS(인터넷 정보 서비스) 관리자를 클릭합니다.
    • Windows 8 또는 Windows 8.1 사용하는 경우:

      • Windows 키를 누른 채로 문자 X를 누른 다음 제어판 클릭합니다.
      • 관리 도구를 클릭한 다음 IIS(인터넷 정보 서비스) 관리자를 두 번 클릭합니다.
    • Windows Server 2008 또는 Windows Server 2008 R2를 사용하는 경우:

      • 작업 표시줄에서 시작을 클릭하고 관리 도구를 가리킨 다음 IIS(인터넷 정보 서비스) 관리자를 클릭합니다.
    • Windows Vista 또는 Windows 7을 사용하는 경우:

      • 작업 표시줄에서 시작을 클릭한 다음 제어판 클릭합니다.
      • 관리 도구를 두 번 클릭한 다음 IIS(인터넷 정보 서비스) 관리자를 두 번 클릭합니다.
  2. 연결 창에서 SSL 요구 사항을 구성하려는 사이트, 애플리케이션 또는 디렉터리로 이동합니다. 서버 수준에서 SSL을 구성할 수 없습니다.

  3. 창에서 SSL 설정을 두 번 클릭합니다.
    SSL 설정 아이콘이 강조 표시된 홈 창의 스크린샷

  4. SSL 설정 창에서 SSL 필요를 클릭합니다.

  5. 작업 창에서 적용을 클릭합니다.

구성

ApplicationHost.config 파일의 서버 수준 또는 적절한 Web.config 파일의 사이트, 애플리케이션 또는 디렉터리 수준에서 요소를 구성할 <access> 수 있습니다.

특성

attribute Description
sslFlags sslFlags 특성은 다음과 같은 가능한 값 중 하나일 수 있습니다. 기본값은 None입니다.
Description
None SSL을 사용하지 않도록 설정합니다.
Ssl SSL이 필요합니다.
SslNegotiateCert 인증을 위해 클라이언트 인증서를 수락합니다.
SslRequireCert 인증을 위해 클라이언트 인증서가 필요합니다.
SslMapCert 인증서 매핑 인증을 사용하도록 설정합니다.
Ssl128 128비트 SSL이 필요합니다.

자식 요소

없음

구성 샘플

ApplicationHost.config 파일에 포함된 다음 구성 예제에서는 Contoso라는 웹 사이트와 모든 클라이언트 브라우저 간의 SSL 연결이 필요합니다.

<location path="Contoso">
   <system.webServer>
      <security>
         <access sslFlags="ssl">
      </security>
   </system.webServer>
</location>

샘플 코드

다음 예제에서는 Contoso라는 웹 사이트에 액세스하는 데 SSL이 필요합니다.

AppCmd.exe

appcmd.exe set config "Contoso" -section:system.webServer/security/access /sslFlags:"Ssl" /commit:apphost

참고

AppCmd.exe 사용하여 이러한 설정을 구성할 때 commit 매개 변수 apphost 를 로 설정해야 합니다. 그러면 구성 설정이 ApplicationHost.config 파일의 적절한 위치 섹션에 커밋됩니다.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample {
   private static void Main() {
      using(ServerManager serverManager = new ServerManager()) { 
         Configuration config = serverManager.GetApplicationHostConfiguration();
         ConfigurationSection accessSection = config.GetSection("system.webServer/security/access", "Contoso");
         accessSection["sslFlags"] = @"Ssl";
         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration
      Dim accessSection As ConfigurationSection = config.GetSection("system.webServer/security/access", "Contoso")
      accessSection("sslFlags") = "Ssl"
      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var accessSection = adminManager.GetAdminSection("system.webServer/security/access", "MACHINE/WEBROOT/APPHOST/Contoso");
accessSection.Properties.Item("sslFlags").Value = "Ssl";

adminManager.CommitChanges();

VBScript

Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set accessSection = adminManager.GetAdminSection("system.webServer/security/access", "MACHINE/WEBROOT/APPHOST/Contoso")
accessSection.Properties.Item("sslFlags").Value = "Ssl"

adminManager.CommitChanges()