可选:为适用于企业的应用控制创建代码签名证书

注意

适用于企业的 App Control 的某些功能仅适用于特定 Windows 版本。 详细了解 应用控制功能可用性

部署适用于企业的 App Control 时,可能需要在内部对目录文件或应用控制策略进行签名。 若要执行此签名,需要使用Microsoft的受信任签名服务、公开颁发的代码签名证书或内部 CA。 如果已购买代码签名证书,可以跳过本文,改为按照 适用于企业的应用控制部署指南中列出的其他文章进行操作。

如果你有内部 CA,请完成以下步骤以创建代码签名证书。

警告

为应用控制策略签名创建签名证书时,如果签名证书不遵循以下规则,则可能会出现启动失败 (蓝屏) :

  • 所有策略(包括基本策略和补充策略)都必须根据 PKCS 7 标准进行签名。
  • 仅使用 2K、3K 或 4K 密钥大小的 RSA 密钥。 不支持 ECDSA。
  • 应用 2022 年 11 月累积安全更新后,可以将 SHA-256、SHA-384 或 SHA-512 用作 Windows 11 以及 Windows 10 和 Windows Server 2019 及更高版本的摘要算法。 所有其他设备仅支持 SHA256。
  1. 打开证书颁发机构 Microsoft 管理控制台 (MMC) 管理单元,然后选择你的颁发 CA。

  2. 连接后,右键单击“ 证书模板”,然后选择“ 管理 ”以打开“认证模板控制台”。

    显示证书模板的 CA 管理单元。

    图 1. 管理证书模板

  3. 在导航窗格中,右键单击“代码签名证书”,然后选择“ 复制模板”。

  4. 在“兼容性” 选项卡上,清除“显示生成的更改” 复选框。 从“证书颁发机构” 列表中选择“Windows Server 2012” ,然后从“证书收件人” 列表中选择“Windows 8 / Windows Server 2012”

  5. 在“常规”选项卡上,指定“模板显示名称”和“模板名称”。 此示例使用名称 “应用控件目录签名证书”。

  6. 在“请求处理”选项卡上,选中“允许导出私钥”复选框。

  7. 在“扩展”选项卡上,选择“基本约束检查”框,然后选择“编辑”。

  8. 在“编辑基本约束扩展”对话框中,选中“启用此扩展”,如图 2 所示。

    编辑基本约束扩展。

    图 2. 在新模板上选择约束

  9. 如果证书管理器需要批准任何已颁发的证书,请在“颁发要求”选项卡上,选择“CA 证书管理器批准”

  10. 在“使用者名称”选项卡上,选择“在请求中提供”

  11. 在“安全”选项卡上,验证将用于请求证书的任何帐户是否都有权注册证书。

  12. 选择“ 确定” 以创建模板,然后关闭“证书模板控制台”。

创建此证书模板后,必须将其发布到 CA 已发布模板存储中。 若要执行此操作,请完成以下步骤:

  1. 在证书颁发机构 MMC 管理单元中,右键单击“ 认证模板”,指向 “新建”,然后选择“ 要颁发的证书模板”,如图 3 所示。

    选择要颁发的证书模板。

    图 3. 选择要颁发的新证书模板

    此时会显示要发布的可用模板列表,包括创建的模板。

  2. 选择“应用控件目录签名证书”,然后选择“ 确定”。

现在,模板已可供颁发,你必须从运行Windows 10或Windows 11的计算机请求一个,以创建目录文件并对其签名。 若要开始,请打开 MMC,然后完成以下步骤:

  1. 在 MMC 的“ 文件 ”菜单中,选择“ 添加/删除管理单元”。 双击“证书” ,然后选择“我的用户帐户”

  2. 在“证书”管理单元中,右键单击“个人存储”文件夹,指向“ 所有任务”,然后选择“ 请求新证书”。

  3. 选择“ 下一步 ”两次,进入证书选择列表。

  4. 在“请求证书”列表中,选择你新创建的代码签名证书,然后选择请求其他信息的蓝色文本,如图 4 所示。

    请求证书:需要更多信息。

    图 4. 获取有关你的代码签名证书的详细信息

  5. 在“证书属性” 对话框中,对于“类型” ,请选择“公用名” 。 对于 “值”,请为证书 (指定有意义的名称,在此示例中,我们选择 “$ContosoSigningCert) ”,然后选择“ 添加”。 添加后,选择“ 确定”。

  6. 注册和完成。

注意

如果需要证书管理员批准任何颁发的证书,而你选择要求对模板进行管理批准,则需要在 CA 中批准请求,然后才能将其颁发给客户端。

此证书必须安装在要对目录文件和代码完整性策略进行签名的计算机上的用户个人存储中。 如果在用于请求证书的同一台计算机上进行签名,则可以跳过以下步骤。 如果要在另一台计算机上签名,则需要使用必要的密钥和属性导出 .pfx 证书。 若要执行此操作,请完成以下步骤:

  1. 右键单击证书,指向 “所有任务”,然后选择“ 导出”。

  2. 选择“ 下一步”,然后选择“ 是,导出私钥”。

  3. 选择默认设置,然后选择“导出所有扩展属性”

  4. 设置密码,选择导出路径,然后选择 AppControlCatSigningCert.pfx 作为文件名。

当证书已导出时,将其导入到将在特定计算机(将进行签名)上对目录文件或代码完整性策略进行签名的用户的个人存储中。