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 a minimum, you want to configure a URL registration and add a Firewall exception for the URL your service will be using. これらの設定を構成するには、Netsh.exe ツールを使用します。You can 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 subpaths 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.

次の例では、Netsh.exe ツールを使用します。The following example uses the Netsh.exe tool:

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

このコマンドは、ドメイン \ ユーザー アカウントの指定した URL 名前空間の URL 予約を追加します。This command adds a URL reservation for the specified URL namespace for the DOMAIN\user account. Netsh コマンドの使用の詳細については、入力netsh http add urlacl /?コマンド プロンプトで Enter キーを押します。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.

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 doesn't 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. HTTP Server API を使用しないアプリケーションが以前の IP アドレスとポートの組み合わせにバインドされている場合、競合が発生します。A conflict arises if an application that doesn't 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.

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 aren't 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 don't need to change these settings.

関連項目See also