Secure Sockets Layer (SSL) (トランスポート層セキュリティ (TLS) とも呼ばれます) は、インターネット接続をセキュリティで保護するための標準となり、ネットワークでの傍受を防ぐために使用されています。 SSL/TLS プロトコルを使用すると、クライアントとサーバーは相互に認証し、暗号化アルゴリズムをネゴシエートできます。
SSL では、暗号化キーと暗号化アルゴリズムを使用して HTTP 接続をセキュリティで保護します。 暗号化キーは、クライアントとサーバーの両方で使用される SSL 証明書に含まれています。 証明書は通常、X.509 (RFC 2459) ドキュメントです。 サーバーはセッションの SSL 証明書を提供し、ハンドシェイク フェーズでクライアントに証明書を送信します。 クライアントは、サーバーが証明書の要求をクライアントに送信する場合にのみ、その証明書をサーバーに送信します。 したがって、クライアントは常にサーバーを認証しますが、サーバーにはクライアントを認証するかどうかのオプションがあります。
サーバー証明書は、セキュリティで保護された接続が作成されるたびに使用するために、HTTP サーバー API のローカル永続ストレージに格納する必要があります。 各証明書ストア エントリには、サーバーの IP アドレスとポート、証明書ハッシュ (メッセージの署名に使用) とアプリケーション ID も含まれます。 アプリケーション ID は、証明書を所有するアプリケーションを識別するために使用されます。
システム管理者は、構成 API を使用して SSL サーバー証明書情報を格納できます。 管理ツールは、HttpSetServiceConfiguration 関数を呼び出し、サービス構成パラメーターの HttpServiceConfigSSLCertInfo 値を指定して、SSL 証明書の情報を設定します。 マシン上の各 IP アドレスとポート ペアに対して構成できるサーバー証明書は 1 つだけです。 また、HTTP Server API では、クエリ提供され、既存の証明書にアクセスしたり、既存の証明書を削除したりするための関数を削除。