HTTP および HTTPS の構成Configuring HTTP and HTTPS

WCF サービスと WCF クライアントは、HTTP および HTTPS を介して通信できます。WCF services and clients can communicate over HTTP and HTTPS. HTTP または HTTPS の設定は、インターネット インフォメーション サービス (IIS) またはコマンド ライン ツールを使用して構成します。The HTTP/HTTPS settings are configured by using Internet Information Services (IIS) or through the use of a command-line tool. WCF サービスが IIS でホストされている場合は、IIS 内で HTTP または HTTPS の設定を構成できます (inetmgr.exe ツールを使用)。When a WCF service is hosted under IIS HTTP or HTTPS settings can be configured within IIS (using the inetmgr.exe tool). WCF サービスが自己ホスト型の場合は、コマンド ライン ツールを使用して HTTP または HTTPS の設定を構成します。If a WCF service is self-hosted, HTTP or HTTPS settings are configured by using a command-line tool.

少なくとも、URL 登録を構成し、サービスで使用される URL のファイアウォール例外を追加する必要があります。At the minimum you will want to configure a URL registration, and add a Firewall exception for the URL your service will be using.

HTTP 設定の構成に使用するツールは、コンピューターで実行されているオペレーティング システムによって異なります。The tool used to configure HTTP settings depends on the operating system the computer is running.

実行時にWindows Server 2003Windows Server 2003またはWindows XPWindows XP、HttpCfg.exe ツールを使用します。When running Windows Server 2003Windows Server 2003 or Windows XPWindows XP, use the HttpCfg.exe tool. Windows Server 2003Windows Server 2003 ではこのツールが自動的にインストールされます。automatically installs this tool. 実行時にWindows XPWindows XP、ツールをダウンロードするWindows XP Service Pack 2 サポート ツールします。When running Windows XPWindows XP, you can download the tool at Windows XP Service Pack 2 Support Tools. 詳細については、次を参照してください。 Httpcfg の概要します。For more information, see Httpcfg Overview.

実行時にWindows VistaWindows VistaWindows 7、Netsh.exe ツールを使用してこれらの設定を構成することもできます。When running Windows VistaWindows Vista or Windows 7, you configure these settings with the Netsh.exe tool.

名前空間予約の構成Configuring Namespace Reservations

名前空間予約では、HTTP URL 名前空間の一部に対する権限を特定のユーザー グループに割り当てます。Namespace reservation assigns the rights for a portion of the HTTP URL namespace to a particular group of users. 予約によって、名前空間のその部分でリッスンするサービスを作成する権限をユーザーに与えます。A reservation gives those users the right to create services that listen on that portion of the namespace. 予約は URL プレフィックスを使用します。つまり、予約は予約パスのすべてのサブパスを範囲とします。Reservations are URL prefixes, meaning that the reservation covers all sub-paths of the reservation path. 名前空間予約では、2 つの方法でワイルドカードを使用できます。Namespace reservations permit two ways to use wildcards. HTTP サーバー API のドキュメントについて説明します、ワイルドカードを含む名前空間クレーム間の解決順序します。The HTTP Server API documentation describes the order of resolution between namespace claims that involve wildcards.

実行中のアプリケーションは、同様の要求を作成して、名前空間登録を追加できます。A running application can create a similar request to add namespace registrations. 名前空間の同じ部分について、登録と予約の間で競合が発生します。Registrations and reservations compete for portions of the namespace. 予約で指定された解決順序に従って登録の優先順位があります、ワイルドカードを含む名前空間クレーム間の解決順序します。A reservation may have precedence over a registration according to the order of resolution given in the order of resolution between namespace claims that involve wildcards. この場合、実行中のアプリケーションがクレームを受信する動作が、予約によってブロックされます。In this case, the reservation blocks the running application from receiving requests.

Windows XP または Windows Server 2003 を実行している場合Running Windows XP or Server 2003

使用して、httpcfg.exe set urlacl名前空間の予約を変更するコマンド。Use the httpcfg.exe set urlacl command to change namespace reservations. Windows サポート ツールのドキュメントHttpcfg.exe ツールの構文について説明します。The Windows Support Tools documentation explains the syntax for the Httpcfg.exe tool. 名前空間の一部に対する予約権限を変更するには、管理特権または名前空間のその部分の所有権が必要です。Modifying the reservation rights for a portion of the namespace requires either administrative privileges or ownership of that portion of the namespace. 最初は、ローカル管理者が HTTP 名前空間全体を所有しています。Initially, the entire HTTP namespace belongs to the local administrator.

set urlacl オプションを使用する Httpcfg コマンドの構文を次に示します。The following shows the syntax of the Httpcfg command with the set urlacl option

httpcfg set urlacl /u {http://URL:Port/ | https://URL:Port/} /aACL  

/u を使用する場合には、set urlacl パラメーターが必要です。The /u parameter is required when using set urlacl. このパラメーターには、実行された予約のレコード キーとして動作する完全修飾 URL を含む文字列を指定します。It takes a string that contains a fully-qualified URL that serves as the record key for the reservation being made.

/a を使用する場合には、set urlacl パラメーターも必要です。The /a parameter is also required when using set urlacl. このパラメーターには、SDDL (Security Descriptor Definition Language) の形式によるアクセス制御リスト (ACL) を含む文字列を指定します。It takes a string that contains an Access Control List (ACL) in the form of a Security Descriptor Definition Language (SDDL) string.

このコマンドの使用例を次に示します。The following shows an example of using this command.

httpcfg.exe set urlacl /u http://myhost:8000/ /a "O:AOG:DAD:(A;;RPWPCCDCLCSWRCWDWOGA;;;S-1-0-0)"  

Windows Vista、Windows Server 2008 R2、または Windows 7 を実行している場合Running Windows Vista, Windows Server 2008 R2 or Windows 7

Windows VistaWindows Vista、Windows Server 2008 R2、または Windows 7 を実行している場合は、Netsh.exe ツールを使用します。If you are running on Windows VistaWindows Vista, Windows Server 2008 R2 or Windows 7, use the Netsh.exe tool. このコマンドの使用例を次に示します。The following shows an example of using this command.

netsh http add urlacl url=http://+:80/MyUri user=DOMAIN\user  

このコマンドにより、DOMAIN\ユーザー アカウントについて指定した URL 名前空間の URL 予約が追加されます。This command adds an URL reservation for the specified URL namespace for the DOMAIN\user account. 詳細については、netsh コマンドの種類を使用してキーを押して、コマンド プロンプトでの「netsh http add urlacl」を入力します。For more information on using the netsh command type "netsh http add urlacl" in a command-prompt and press enter.

ファイアウォールの例外の構成Configuring a Firewall Exception

HTTP 経由の通信を行う WCF サービスを自己ホストする際は、例外をファイアウォール構成に追加して、特定の URL を使用した着信接続を可能にする必要があります。When self-hosting a WCF service that communicates over HTTP, an exception must be added to the firewall configuration to allow inbound connections using a particular URL. 詳細については、次を参照してください(Windows 7) の Windows ファイアウォールでポートを開く。For more information, see Open a port in Windows Firewall (Windows 7)

SSL 証明書の構成Configuring SSL Certificates

SSL (Secure Sockets Layer) プロトコルは、クライアントとサーバー上で証明書を使用して暗号化キーを格納します。The Secure Sockets Layer (SSL) protocol uses certificates on the client and server to store encryption keys. サーバーは、クライアントがサーバーの ID を検証できるように接続時に SSL 証明書を提供します。The server provides its SSL certificate when a connection is made so that the client can verify the server identity. また、サーバーはクライアントに証明書を要求して、接続の両側で相互認証を実行することもできます。The server can also request a certificate from the client to provide mutual authentication of both sides of the connection.

証明書は、接続の IP アドレスとポート番号に基づいて集中ストアに格納されます。Certificates are stored in a centralized store according to the IP address and port number of the connection. 特別な IP アドレス 0.0.0.0 は、ローカル コンピューターの任意の IP アドレスに一致します。The special IP address 0.0.0.0 matches any IP address for the local machine. 証明書ストアでは、パスを基準にした URL を区別しません。Note that the certificate store does not distinguish URLs based on the path. 同じ IP アドレスとポートの組み合わせを持つサービスは、そのサービスの URL でのパスが異なる場合でも証明書を共有する必要があります。Services with the same IP address and port combination must share certificates even if the path in the URL for the services is different.

手順については、次を参照してください。方法。SSL 証明書でポートを構成します。For step-by-step instructions, see How to: Configure a Port with an SSL Certificate.

IP リッスン一覧の構成Configuring the IP Listen List

HTTP Server API は、ユーザーが URL を登録すると、IP アドレスとポートだけにバインドします。The HTTP Server API only binds to an IP address and port once a user registers a URL. 既定では、HTTP Server API は、コンピューターのすべての IP アドレスに対して、URL でポートにバインドします。By default, the HTTP Server API binds to the port in the URL for all of the IP addresses of the machine. その IP アドレスとポートの組み合わせにバインドしている HTTP Server API をアプリケーションが使用していない場合、競合が発生します。A conflict arises if an application that does not use the HTTP Server API has previously bound to that combination of IP address and port. IP リッスン一覧には、WCF サービスの一部のマシンの IP アドレス、ポートを使用するアプリケーションと共存させることができます。The IP Listen List allows WCF services to coexist with applications that use a port for some of the IP addresses of the machine. IP リッスン一覧にエントリがある場合、HTTP Server API は、その一覧に指定されている IP アドレスだけにバインドします。If the IP Listen List contains any entries, the HTTP Server API only binds to those IP addresses that the list specifies. IP リッスン一覧を変更するには、管理特権が必要です。Modifying the IP Listen List requires administrative privileges.

Windows XP または Windows Server 2003 を実行している場合Running Windows XP or Server 2003

httpcfg ツールを使用して IP リッスン一覧を変更します。次に例を示します。Use the httpcfg tool to modify the IP Listen List, as shown in the following example. Windows サポート ツールのドキュメントhttpcfg.exe ツールの構文について説明します。The Windows Support Tools documentation explains the syntax for the httpcfg.exe tool.

httpcfg.exe set iplisten -i 0.0.0.0:8000  

Windows Vista または Windows 7 を実行している場合Running Windows Vista or Windows 7

netsh ツールを使用して IP リッスン一覧を変更します。次に例を示します。Use the netsh tool to modify the IP Listen List, as shown in the following example.

netsh http add iplisten ipaddress=0.0.0.0:8000  

その他の構成設定Other Configuration Settings

WSDualHttpBinding を使用すると、クライアント接続では、名前空間予約と Windows ファイアウォールに対応できる既定値が使用されます。When using WSDualHttpBinding, the client connection uses defaults that are compatible with namespace reservations and the Windows firewall. 双方向接続のクライアント ベース アドレスをカスタマイズする場合、クライアント上で HTTP 設定を行い、新しいアドレスに一致させる必要があります。If you choose to customize the client base address of a dual connection, then you also must configure these HTTP settings on the client to match the new address.

HTTP Server API には、HttpCfg からは使用できない高度な構成設定があります。The HTTP Server API has some advanced configuration settings that are not available through HttpCfg. この設定は、レジストリで管理され、HTTP Server API を使用するシステムで実行中のすべてのアプリケーションに適用されます。These settings are maintained in the registry and apply to all applications running on the systems that use the HTTP Server APIs. これらの設定については、次を参照してください。 IIS 用の Http.sys レジストリ設定します。For information about these settings, see Http.sys registry settings for IIS. ほとんどのユーザーは、この設定を変更する必要がありません。Most users should not need to change these settings.

Windows XP に固有の問題Issues Specific to Windows XP

IIS では、Windows XPWindows XP 上でのポート共有がサポートされていません。IIS does not support port sharing on Windows XPWindows XP. IIS が実行されていると、WCF サービスが同じポートを持つ名前空間を使用しようとした場合、WCF サービスを開始に失敗します。If IIS is running and a WCF service attempts to use a namespace with the same port, the WCF service fails to start. IIS と WCF どちらも、既定ポート 80 を使用します。IIS and WCF both default to using port 80. サービスのいずれかのポート割り当てを変更するか、IP リッスン一覧を使用して、WCF サービスを IIS で使用されていないネットワーク アダプターに割り当てます。Either change the port assignment for one of the services or use the IP Listen List to assign the WCF service to a network adapter not used by IIS. IIS 6.0 以上では、HTTP Server API を使用できるように設計が変更されています。IIS 6.0 and later have been redesigned to use the HTTP Server APIs.

関連項目See Also

WSDualHttpBinding
操作方法:SSL 証明書でポートを構成します。How to: Configure a Port with an SSL Certificate