다음을 통해 공유


기본 바인딩 <바인딩 추가>

개요

<binding> 요소의 <bindings> 요소를 사용하면 요청이 웹 사이트와 통신하는 데 필요한 정보를 구성할 수 있습니다.

웹 사이트를 만들 때 바인딩 정보를 구성하거나 사이트를 만든 후 바인딩 정보를 편집할 수 있습니다. 바인딩 정보에는 클라이언트가 사이트와 통신하는 데 사용하는 프로토콜, 사이트의 IP 주소, 포트 번호 및 호스트 헤더가 포함됩니다.

요소 <binding> 에는 바인딩 정보를 구성하는 두 가지 특성인 bindingInformation 및 프로토콜 포함됩니다. bindingInformation 특성에는 IP 주소, 포트 번호 및 선택적으로 사이트의 호스트 헤더가 포함됩니다. 프로토콜 특성은 사이트와 통신하는 데 사용할 프로토콜을 정의합니다.

호환성

버전 주의
IIS 10.0 <binding> IIS 10.0에서 요소가 수정되지 않았습니다.
IIS 8.5 <binding> IIS 8.5에서 요소가 수정되지 않았습니다.
IIS 8.0 sslFlags 보안 소켓 계층 인증서에 사용되는 바인딩을 지정하기 위해 특성이 추가되었습니다.
IIS 7.5 <binding> IIS 7.5에서는 요소가 수정되지 않았습니다.
IIS 7.0 <binding> 컬렉션의 <bindings> 요소는 IIS 7.0에서 도입되었습니다.
IIS 6.0 이 컬렉션은 <bindings> IIS 6.0 IIsWebServer 메타베이스 개체의 ServerBindings 속성 섹션 대체합니다.

설정

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

방법

서버에 기본 바인딩 정보를 추가하는 방법

  1. IIS(open 인터넷 정보 서비스) 관리자:

    • 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. 연결 창에서 서버 이름을 선택합니다.

  3. 창에서 구성 편집기를 두 번 클릭합니다.

  4. 섹션system.applicationHost/sites이동합니다.

  5. 사이트 바인딩 대화 상자에서 추가...를 클릭합니다.

  6. siteDefaults를 확장 합니다.

  7. 바인딩을 선택한 다음 오른쪽의 줄임표를 클릭하여 컬렉션 편집기를 엽니다.

    사이트 기본값 노드가 확장되고 바인딩이 선택된 사이트 바인딩 대화 상자의 스크린샷

  8. 추가를 클릭하고 bindingInformation, 프로토콜sslFlags 값을 입력합니다.

  9. 컬렉션 편집기를고 작업 창에서 적용을 클릭합니다.

구성

ApplicationHost.config 파일의 섹션에 <siteDefaults> 있는 요소 내에 <bindings> 기본 <binding> 요소를 추가할 수 있습니다.

attribute 설명
bindingInformation 필수 문자열 특성입니다.

사이트와 통신할 정보를 지정합니다. 예를 들어 웹 사이트 바인딩에는 IP 주소(또는 지정되지 않은 IP 주소), 포트 번호 및 사이트와 통신하는 데 사용되는 선택적 호스트 헤더가 포함됩니다.
protocol 필수 문자열 특성입니다.

사이트와 통신하기 위한 프로토콜을 지정합니다.
sslFlags 다음과 같은 가능한 플래그를 사용하여 플래그 유형과 같이 작동하는 선택적 uint 특성입니다.
설명
0 IP/포트 조합을 사용하여 만든 보안 연결입니다. 하나의 인증서만 IP 주소와 포트의 조합에 바인딩할 수 있습니다.
1 SNI(서버 이름 표시)를 사용하여 가져온 포트 번호와 호스트 이름을 사용하여 만든 보안 연결입니다.
2 보안 연결은 중앙 집중식 SSL 인증서 저장소를 사용하여 이루어집니다.
4 HTTP/2를 사용하지 않도록 설정합니다.
8 OCSP 스테이플링을 사용하지 않도록 설정합니다.
16 QUIC를 사용하지 않도록 설정합니다.
32 TCP를 통해 TLS 1.3을 사용하지 않도록 설정합니다.
64 레거시 TLS를 사용하지 않도록 설정합니다.
중앙 집중식 SSL 인증서 지원을 사용하면 여러 인증서 파일을 포함할 수 있는 중앙 집중식 인증서 저장소를 만들 수 있습니다. 인증서 파일은 포함된 호스트 이름에 해당하도록 이름을 지정할 수 있습니다. 이렇게 하면 IP/포트 또는 호스트 이름/포트 조합이 아닌 포트만 필요한 바인딩을 만들 수 있습니다. 요청이 들어오면 IIS는 포트와 일치하고, 요청에서 호스트 이름을 결정하고, 중앙 집중식 인증서 저장소에서 일치하는 이름의 인증서 파일을 검색합니다. 해당 인증서를 사용합니다.

SNI(서버 이름 표시기)를 사용하면 호스트 이름이 SSL 핸드셰이크의 일부로 교환됩니다. SNI는 HTTPS 형식의 바인딩을 추가할 때 사이트 바인딩 추가 대화 상자에서 사용하도록 설정됩니다. 이는 단일 네트워크 주소에서 여러 서버를 호스트하는 SSL 연결에 유용합니다.

4보다 큰 값은 IIS 10 버전 1809 이상에서만 지원됩니다. 기본값은 0입니다.

자식 요소

없음

구성 샘플

다음 구성 샘플은 IIS 7에 대한 기본 bindings 옵션을 지정합니다.

<system.applicationHost>
   <sites>
      <siteDefaults>
         <bindings>
            <binding protocol="http" bindingInformation="127.0.0.1:8080:" />
         </bindings>
      </siteDefaults>
   </sites>
</system.applicationHost>

예제 코드

다음 코드 샘플은 IIS 7에 대한 기본 bindings 옵션을 구성합니다.

AppCmd.exe

appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.bindings.[protocol='http',bindingInformation='*:8080:contoso.com'].bindingInformation:"127.0.0.1:8080:" /commit:apphost

참고 항목

AppCmd.exe 사용하여 이러한 설정을 구성할 때 커밋 매개 변수 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 sitesSection = config.GetSection("system.applicationHost/sites");
         ConfigurationElement siteDefaultsElement = sitesSection.GetChildElement("siteDefaults");

         ConfigurationElementCollection bindingsCollection = siteDefaultsElement.GetCollection("bindings");
         ConfigurationElement bindingElement = bindingsCollection.CreateElement("binding");
         bindingElement["protocol"] = @"http";
         bindingElement["bindingInformation"] = @"127.0.0.1:8080:";
         bindingsCollection.Add(bindingElement);

         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 sitesSection As ConfigurationSection = config.GetSection("system.applicationHost/sites")
      Dim siteDefaultsElement As ConfigurationElement = sitesSection.GetChildElement("siteDefaults")

      Dim bindingsCollection As ConfigurationElementCollection = siteDefaultsElement.GetCollection("bindings")
      Dim bindingElement As ConfigurationElement = bindingsCollection.CreateElement("binding")
      bindingElement("protocol") = "http"
      bindingElement("bindingInformation") = "127.0.0.1:8080:"
      bindingsCollection.Add(bindingElement)

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var sitesSection = adminManager.GetAdminSection("system.applicationHost/sites", "MACHINE/WEBROOT/APPHOST");
var siteDefaultsElement = sitesSection.ChildElements.Item("siteDefaults");

var bindingsCollection = siteDefaultsElement.ChildElements.Item("bindings").Collection;
var bindingElement = bindingsCollection.CreateNewElement("binding");
bindingElement.Properties.Item("protocol").Value = "http";
bindingElement.Properties.Item("bindingInformation").Value = "127.0.0.1:8080:";
bindingsCollection.AddElement(bindingElement);

adminManager.CommitChanges();

VBScript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set sitesSection = adminManager.GetAdminSection("system.applicationHost/sites", "MACHINE/WEBROOT/APPHOST")
Set siteDefaultsElement = sitesSection.ChildElements.Item("siteDefaults")

Set bindingsCollection = siteDefaultsElement.ChildElements.Item("bindings").Collection
Set bindingElement = bindingsCollection.CreateNewElement("binding")
bindingElement.Properties.Item("protocol").Value = "http"
bindingElement.Properties.Item("bindingInformation").Value = "127.0.0.1:8080:"
bindingsCollection.AddElement(bindingElement)

adminManager.CommitChanges()