액세스 보안 <액세스>
개요
요소를 <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 SSLAlwaysNegoClientCert 및 AccessSSLFlags 메타베이스 속성을 대체합니다. |
설치 프로그램
요소는 <access>
IIS 7의 기본 설치에 포함됩니다.
방법
보안 소켓 계층을 요구하는 방법
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(인터넷 정보 서비스) 관리자를 두 번 클릭합니다.
연결 창에서 SSL 요구 사항을 구성하려는 사이트, 애플리케이션 또는 디렉터리로 이동합니다. 서버 수준에서 SSL을 구성할 수 없습니다.
SSL 설정 창에서 SSL 필요를 클릭합니다.
작업 창에서 적용을 클릭합니다.
구성
ApplicationHost.config 파일의 서버 수준 또는 적절한 Web.config 파일의 사이트, 애플리케이션 또는 디렉터리 수준에서 요소를 구성할 <access>
수 있습니다.
특성
attribute | Description | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
sslFlags |
sslFlags 특성은 다음과 같은 가능한 값 중 하나일 수 있습니다. 기본값은 None 입니다.
|
자식 요소
없음
구성 샘플
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()