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 属性设置为“安装程序无法添加此角色服务,因为它已存在于默认网站中。 请删除现有角色服务,或选择其他证书颁发机构 (CA) 或身份验证类型。”
     
  • 创建 %windir%\systemdata\ces\SanitizedCAShortName_ces_AuthenticationType 应用程序目录。
    注意 如果指定的名称已作为目录存在,则此方法不会返回错误,但如果指定的名称以文件的形式存在,或者如果发生其他错误,则此方法将返回失败 HRESULT 并将 ErrorString 属性设置为“无法创建目录 %1”。
     
  • 创建 %windir%\systemdata\ces\SanitizedCAShortName_ces_AuthenticationType\Traces 事件跟踪目录。
  • 创建 Web.config 和 Service.svc 文件,并将其写入应用程序目录。 如果文件已存在,则会覆盖这些文件。
  • 创建 IIS 应用程序池。 默认情况下,池在 ApplicationPoolIdentity 帐户下运行。 若要使用不同的标识,必须在安装 CES 角色后手动更改它。
  • 在默认网站中创建应用程序。
  • 创建安全 (https) 绑定到端口 443,并在配置过程中指定证书哈希时设置证书哈希。
  • 如果调用 SetProperty 并在 pPropertyValue 参数中指定了 X509AuthCertificate 或 X509AuthUsername,则将 IIS 身份验证设置为匿名。 如果调用 SetProperty 并指定了 X509AuthKerberos,请将身份验证设置为 Windows。
  • 根据配置期间选择的身份验证类型设置 SSL 标志。 所有身份验证类型的默认标志都是 SSL (需要安全通道) 和SSL_128 (128 位加密) 。 此外,如果指定 X509AuthCertificate,则会设置SSL_REQUIRE_CERT和SSL_NEGOTIATE_CERT标志。
  • 添加对事件跟踪目录的读取和写入访问权限。
  • 汇报 Active Directory 中已删除对象容器的安全描述符,以允许计算机和/或应用程序池进行访问。 这使 CES 能够在删除相关的 Active Directory 对象时通知证书颁发机构。 如果 Active Directory 驻留在域控制器上,则允许计算机和应用程序池访问已删除的对象容器。 如果 Active Directory 不驻留在域控制器上,则仅允许访问计算机。
    注意 如果访问 Deleted Objects 容器失败,该方法将返回失败 HRESULT 并将 ErrorString 属性设置为“安装程序无法授予证书注册策略 Web 服务帐户对”已删除对象“容器的列出权限。 Web 服务将无法检测 Active Directory 对象(如证书模板)的删除。 若要完成设置,域管理员组的成员必须手动授予证书注册策略 Web 服务帐户对 Active Directory 域服务 (AD DS) 中“已删除对象”容器的“列表”权限。
     

要求

要求
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 casetup.h
DLL Certocm.dll

另请参阅

ICertificateEnrollmentServerSetup