ICertificateEnrollmentServerSetup::Install メソッド (casetup.h)

Install メソッドは、ICertificateEnrollmentServerSetup オブジェクトによって構成された証明書登録 Web サービス (CES) をインストールします。

構文

HRESULT Install();

戻り値

リターン コード 説明
E_UNEXPECTED
イベント トレース ディレクトリまたはアプリケーション ディレクトリに指定された名前は既に存在していますが、ディレクトリではなくファイルを表しています。
HRESULT_FROM_WIN32(ERROR_ALREADY_EXISTS)
CES アプリケーションは既に存在します。 詳細については、「解説」を参照してください。
HRESULT_FROM_WIN32(ERROR_INVALID_STATE)
ICertificateEnrollmentServerSetup オブジェクトが初期化されていません。

ErrorString プロパティの値が "セットアップ オブジェクトが初期化されていません。 InitializeInstallDefaults メソッドを使用してセットアップ オブジェクトを初期化してください。"

注釈

この関数は、次のアクションを実行します。

  • Windows Management Instrumentation (WMI) を初期化します。
  • 同じ名前のアプリケーションがまだ存在しないことを確認して、CES 構成を検証します。 アプリケーション名は CES URL の一部であり、URL は "https:// computerDNSname/SanitizedCAShortName_ces_AuthenticationType/service.svc/ces" という形式です。 アプリケーション名は "SanitizedCAShortName_ces_AuthenticationType" で構成されます。 AuthenticationType には次のいずれかを指定できます。
    • Kerberos
    • usernamepassword
    • 証明書 (certificate)
    メモ 同じ名前のアプリケーションが存在する場合、 ErrorString プロパティは "既定の Web サイトに既に存在するため、この役割サービスを追加できませんでした。 既存の役割サービスを削除するか、別の証明機関 (CA) または認証の種類を選択してください。"
     
  • %windir%\systemdata\ces\SanitizedCAShortName_ces_AuthenticationType アプリケーション ディレクトリを作成します。
    メモ 指定した名前が既にディレクトリとして存在する場合、指定した名前がファイルとして存在する場合、または他のエラーが発生した場合、このメソッドはエラー HRESULT を返し、 ErrorString プロパティを "ディレクトリ %1 の作成に失敗しました" に設定します。
     
  • %windir%\systemdata\ces\SanitizedCAShortName_ces_AuthenticationType\Trace イベント トレース ディレクトリを作成します。
  • Web.config ファイルと Service.svc ファイルを作成し、アプリケーション ディレクトリに書き込みます。 ファイルが既に存在する場合は、上書きされます。
  • IIS アプリケーション プールを作成します。 既定では、プールは ApplicationPoolIdentity アカウントで実行されます。 別の ID を使用するには、CES ロールのインストール後に手動で変更する必要があります。
  • 既定の Web サイトにアプリケーションを作成します。
  • ポート 443 へのセキュリティで保護された (https) バインドを作成し、構成中に証明書ハッシュが指定されている場合は、証明書ハッシュを設定します。
  • SetProperty を呼び出し、pPropertyValue 引数に X509AuthCertificate または X509AuthUsername を指定した場合は、IIS 認証を匿名に設定します。 SetProperty を呼び出し、X509AuthKerberos を指定した場合は、認証を Windows に設定します。
  • 構成時に選択した認証の種類に応じて、SSL フラグを設定します。 すべての認証の種類の既定のフラグは、SSL (セキュリティで保護されたチャネルが必要) とSSL_128 (128 ビット暗号化) です。 さらに、X509AuthCertificate を指定すると、SSL_REQUIRE_CERTフラグとSSL_NEGOTIATE_CERT フラグが設定されます。
  • イベント トレース ディレクトリへの読み取りおよび書き込みアクセスを追加します。
  • Active Directory の Deleted Objects コンテナーのセキュリティ記述子を更新して、コンピューターやアプリケーション プールへのアクセスを許可します。 これにより、CES は、関連する Active Directory オブジェクトが削除されたときに証明機関に通知できます。 Active Directory がドメイン コントローラーに存在する場合、コンピューターとアプリケーション プールの両方が削除済みオブジェクト コンテナーにアクセスできます。 Active Directory がドメイン コントローラーに存在しない場合は、コンピューターのみがアクセスを許可されます。
    メモ Deleted Objects コンテナーへのアクセスが失敗した場合、メソッドはエラー HRESULT を返し、 ErrorString プロパティを "Setup cannot give the Certificate Enrollment Policy Web Service account List permission on the ""Deleted Objects"" コンテナーに対するアクセス許可を設定します。 Web サービスは、証明書テンプレートなどの Active Directory オブジェクトの削除を検出できません。 セットアップを完了するには、Domain Admins グループのメンバーが、Active Directory Domain Services (AD DS) の "削除済みオブジェクト" コンテナーに対する証明書登録ポリシー Web サービス アカウント一覧アクセス許可を手動で付与する必要があります。
     

要件

要件
サポートされている最小のクライアント Windows 7 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー casetup.h
[DLL] Certocm.dll

こちらもご覧ください

ICertificateEnrollmentServerSetup