启用智能卡向第三方证书颁发机构登录的准则

本文提供有关启用智能卡登录第三方证书颁发机构的一些指南。

适用于:Windows Server 2012 R2、Windows 10 - 所有版本
原始 KB 编号: 281245

摘要

可以按照本文中的准则,通过 Microsoft Windows 2000 和非 Microsoft 证书颁发机构 (CA) 启用智能卡登录过程。 本文稍后将介绍对此配置的有限支持。

更多信息

要求

对 Active Directory 的智能卡身份验证要求正确配置智能卡工作站、Active Directory 和 Active Directory 域控制器。 Active Directory 必须信任证书颁发机构才能根据来自该 CA 的证书对用户进行身份验证。 智能卡工作站和域控制器都必须配置正确配置的证书。

与任何 PKI 实现一样,各方都必须信任发出 CA 链接到的根 CA。 域控制器和智能卡工作站都信任此根。

Active Directory 和域控制器配置

  • 必需:Active Directory 必须在 NTAuth 存储中具有第三方颁发 CA,才能对 Active Directory 的用户进行身份验证。
  • 必需:必须为域控制器配置域控制器证书才能对智能卡用户进行身份验证。
  • 可选:可将 Active Directory 配置为使用 组策略将第三方根 CA 分发到所有域成员的受信任根 CA 存储。

智能卡证书和工作站要求

  • 必需:必须满足“配置说明”部分中概述的所有智能卡要求,包括字段的文本格式。 如果不满足智能卡身份验证,则会失败。
  • 必需:智能卡和私钥必须安装在智能卡上。

配置说明

  1. 导出或下载第三方根证书。 如何获取参与方根证书因供应商而异。 证书必须采用 Base64 编码 X.509 格式。

  2. 将第三方根 CA 添加到 Active Directory 组策略 对象中的受信任根。 若要在 Windows 2000 域中配置组策略,以将第三方 CA 分发到所有域计算机的受信任根存储:

    1. 单击“开始”,依次指向“程序”、“管理工具”,然后单击“Active Directory 用户和计算机”
    2. 在左窗格中,找到要在其中应用策略的域。
    3. 右键单击该域,然后单击“属性”
    4. 单击“组策略”选项卡。
    5. 单击“默认域策略”组策略对象,然后单击“编辑”。 此时会打开一个新窗口。
    6. 在左窗格中,展开以下项:
      • 计算机配置
      • Windows 设置
      • 安全设置
      • 公钥策略
    7. 右键单击“ 受信任的根证书颁发机构”。
    8. 选择“ 所有任务”,然后单击“ 导入”。
    9. 按照向导中的说明导入证书。
    10. 单击“确定”
    11. 关闭组策略窗口。
  3. 将颁发 CA 的第三方添加到 Active Directory 中的 NTAuth 存储。

    智能卡登录证书必须从 NTAuth 存储中的 CA 颁发。 默认情况下,Microsoft Enterprise CA 将添加到 NTAuth 存储区。

    • 如果颁发智能卡登录证书或域控制器证书的 CA 未正确发布到 NTAuth 存储中,则智能卡登录过程不起作用。 相应的答案是“无法验证凭据”。

    • NTAuth 存储位于林的配置容器中。 例如,示例位置如下:LDAP://server1.name.com/CN=NTAuthCertificates,CN=Public Key Services,CN=Services,CN=Configuration,DC=name,DC=com

    • 默认情况下,此存储是在安装 Microsoft Enterprise CA 时创建的。 还可以通过使用 Windows 2000 支持工具中的 ADSIedit.msc 或使用 LDIFDE 手动创建对象。 有关详细信息,请单击以下文章编号以查看 Microsoft 知识库中的文章:

      295663 如何将第三方证书颁发机构 (CA) 证书导入企业 NTAuth 存储

    • 相关属性为 cACertificate,它是一个八进制字符串,ASN 编码证书的多值列表。

      将第三方 CA 放入 NTAuth 存储后,基于域的组策略在域中的所有计算机上将注册表项 (证书) 的指纹放在以下位置:

      HKEY_LOCAL_MACHINE\Software\Microsoft\EnterpriseCertificates\NTAuth\Certificates

      它在工作站上每 8 小时刷新一次, (典型的组策略脉冲间隔) 。

  4. 在域控制器上请求并安装域控制器证书 () 。 要对智能卡用户进行身份验证的每个域控制器都必须具有域控制器证书。

    如果在 Active Directory 林中安装 Microsoft 企业 CA,则所有域控制器都会自动注册域控制器证书。 有关来自第三方 CA 的域控制器证书要求的详细信息,请单击下面的序列号以查看 Microsoft 知识库中的文章:

    291010 来自第三方 CA 的域控制器证书的要求

    注意

    域控制器证书用于安全套接字层 (SSL) 身份验证、简单邮件传输协议 (SMTP) 加密、远程过程调用 (RPC) 签名以及智能卡登录过程。 使用非 Microsoft CA 向域控制器颁发证书可能会导致意外行为或不受支持的结果。 格式不正确的证书或缺少使用者名称的证书可能会导致这些或其他功能停止响应。

  5. 从第三方 CA 请求智能卡证书。

    从第三方 CA 注册满足所述要求的证书。 注册方法因 CA 供应商而异。

    智能卡证书具有特定的格式要求:

    • CRL 分发点 (CDP) 位置 (CRL 是认证吊销列表) 必须填充、联机且可用。 例如:

      [1]CRL Distribution Point  
      Distribution Point Name:  
      Full Name:  
      URL=http://server1.name.com/CertEnroll/caname.crl
      
    • 密钥用法 = 数字签名

    • 基本约束 [主题类型=结束实体,路径长度约束=无] (可选)

    • 增强型密钥用法 =

      • 客户端身份验证 (1.3.6.1.5.5.7.3.2)
        (仅当证书用于 SSL 身份验证时,才需要客户端身份验证 OID) 。)
      • 智能卡登录 (1.3.6.1.4.1.311.20.2.2)
    • 使用者可选名称 = 其他名称:主体名称= (UPN) 。 例如:
      UPN = user1@name.com
      UPN OtherName OID 为:“1.3.6.1.4.1.311.20.2.3”
      UPN OtherName 值:必须是 ASN1 编码的 UTF8 字符串

    • Subject = 用户的可分辨名称。 此字段是强制扩展,但此字段的填充是可选的。

  6. 有两种预定义的私钥类型。 这些密钥是 “仅签名 (AT_SIGNATURE) ”和 “密钥交换 (AT_KEYEXCHANGE) ”。 智能卡登录证书必须具有 密钥 Exchange (AT_KEYEXCHANGE) 私钥类型,才能使智能卡登录正常工作。

  7. 将智能卡驱动程序和软件安装到智能卡工作站。

    请确保在智能卡工作站上安装相应的智能卡读取器和驱动程序软件。 它因智能卡读取器供应商而异。

  8. 将第三方智能卡证书安装到智能卡工作站。

    如果在步骤 4 的注册过程中,智能卡尚未放入智能卡用户的个人存储中,则必须将证书导入到用户的个人存储中。 为此,请执行以下操作:

    1. 打开 Microsoft 管理控制台 (包含“证书”管理单元的 MMC) 。

    2. 在控制台树的“个人”下,单击“证书”。

    3. 在“所有任务”菜单上,单击“导入”以启动证书导入向导。

    4. 单击包含要导入的证书的文件。

      注意

      如果包含证书的文件是个人信息交换 (PKCS #12) 文件,请键入用于加密私钥的密码,如果希望私钥可导出,请单击以选择相应的检查框,然后打开强私钥保护 ((如果要) 使用此功能)。

      注意

      若要启用强私钥保护,必须使用逻辑证书存储视图模式。

    5. 选择选项,根据证书类型自动将证书放入证书存储中。

  9. 将第三方智能卡证书安装到智能卡上。 此安装因加密服务提供商 (CSP) 和智能卡供应商而异。 有关说明,请参阅供应商的文档。

  10. 使用智能卡登录到工作站。

可能存在的问题

在智能卡登录期间,最常见的错误消息是:

系统无法将你登录。 无法验证凭据。

此消息是一般错误,可能是以下一个或多个问题的结果。

证书和配置问题

  • 域控制器没有域控制器证书。

  • 智能卡证书的 SubjAltName 字段格式不正确。 如果 SubjAltName 字段中的信息显示为十六进制/ASCII 原始数据,则文本格式不是 ASN1 /UTF-8。

  • 域控制器的证书格式不正确或不完整。

  • 对于以下每个条件,必须请求新的有效域控制器证书。 如果有效的域控制器证书已过期,则可以续订域控制器证书,但此过程比请求新的域控制器证书更复杂,而且通常更困难。

    • 域控制器证书已过期。
    • 域控制器具有不受信任的证书。 如果 NTAuth 存储不包含证书颁发机构 (CA) 域控制器证书的颁发 CA 证书,则必须将其添加到 NTAuth 存储,或者从证书位于 NTAuth 存储中的发证 CA 获取 DC 证书。

    如果域控制器或智能卡工作站不信任域控制器的证书链所指向的根 CA,则必须将这些计算机配置为信任该根 CA。

  • 智能卡具有不受信任的证书。 如果 NTAuth 存储不包含智能卡证书的颁发 CA 的 CA 证书,则必须将其添加到 NTAuth 存储,或者从证书位于 NTAuth 存储中的颁发 CA 获取智能卡证书。

    如果域控制器或智能卡工作站不信任用户的智能卡证书链所指向的根 CA,则必须将这些计算机配置为信任该根 CA。

  • 智能卡的证书未安装在工作站上的用户存储中。 存储在智能卡上的证书必须位于使用智能卡登录的用户的配置文件中的智能卡工作站上。

    注意

    无需将私钥存储在工作站上的用户配置文件中。 它只需要存储在智能卡上。

  • 智能卡上未安装正确的智能卡证书或私钥。 有效的智能卡证书必须使用私钥安装在智能卡上,并且证书必须与智能卡工作站上智能卡用户个人资料中存储的证书匹配。

  • 无法从智能卡读取器检索智能卡的证书。 它可能是智能卡读取器硬件或智能卡读取器的驱动程序软件的问题。 验证是否可以使用智能卡读取器供应商的软件查看智能卡上的证书和私钥。

  • 智能卡证书已过期。

  • 没有用户主体名称 (UPN) 在智能卡证书的 SubjAltName 扩展中可用。

  • 智能卡证书的 SubjAltName 字段中的 UPN 格式不正确。 如果 SubjAltName 中的信息显示为十六进制/ASCII 原始数据,则文本格式不是 ASN1 /UTF-8。

  • 智能卡的证书格式不正确或不完整。 对于上述每种情况,必须请求新的有效智能卡证书,并将其安装在智能卡上,并安装到智能卡工作站上的用户的配置文件中。 智能卡证书必须满足本文前面所述的要求,其中包括 SubjAltName 字段中格式正确的 UPN 字段。

    如果有效的智能卡证书已过期,还可以续订智能卡证书,这比请求新的智能卡证书更复杂和困难。

  • 用户的 Active Directory 用户帐户中未定义 UPN。 Active Directory 中的用户帐户必须在智能卡用户的 Active Directory 用户帐户的 userPrincipalName 属性中具有有效的 UPN。

  • 证书中的 UPN 与用户的 Active Directory 用户帐户中定义的 UPN 不匹配。 更正智能卡用户的 Active Directory 用户帐户中的 UPN 或重新颁发智能卡证书,以便 SubjAltName 字段中的 UPN 值与智能卡用户的 Active Directory 用户帐户中的 UPN 相匹配。 建议智能卡 UPN 与第三方 CA 的 userPrincipalName 用户帐户属性匹配。 但是,如果证书中的 UPN 是帐户的“隐式 UPN”, (格式samAccountName@domain_FQDN) ,则 UPN 不必显式匹配 userPrincipalName 属性。

吊销检查问题

如果在域控制器验证智能卡登录证书时吊销检查失败,则域控制器将拒绝登录。 域控制器可能会返回前面提到的错误消息或以下错误消息:

系统无法将你登录。 用于身份验证的智能卡证书不受信任。

注意

找不到和下载证书吊销列表 (CRL) 、无效 CRL、吊销证书以及吊销状态为“未知”都被视为吊销失败。

吊销检查必须同时从客户端和域控制器成功。 请确保满足以下条件:

  • 吊销检查未关闭。

    无法关闭内置吊销提供程序的吊销检查。 如果安装了自定义可安装吊销提供程序,则必须将其打开。

  • 除证书链中的根 CA 之外,每个 CA 证书都包含证书中的有效 CDP 扩展。

  • CRL 具有“下一个更新”字段,并且 CRL 是最新的。 可以通过从 Internet Explorer 下载 CRL,检查 CRL 在 CDP 上联机且有效。 你应该能够从 Internet Explorer 中的任意超文本传输协议 (HTTP) 或文件传输协议 (FTP) CDP 从智能卡工作站 () 和域控制器 () 下载和查看 CRL。

验证企业中证书使用的每个唯一 HTTP 和 FTP CDP 是否联机且可用。

若要验证 CRL 是否联机且可从 FTP 或 HTTP CDP 使用::

  1. 若要打开有问题的证书,请双击.cer文件或双击存储中的证书。
  2. 单击“详细信息”选项卡,然后选择“ CRL 分发点” 字段。
  3. 在底部窗格中,突出显示完整的 FTP 或 HTTP 统一资源定位符 (URL) 并复制它。
  4. 打开 Internet Explorer 并将 URL 粘贴到地址栏中。
  5. 收到提示时,选择“打开 CRL”选项。
  6. 请确保 CRL 中有“下一个更新”字段,并且“下一个更新”字段中的时间尚未过去。

若要下载或验证轻型目录访问协议 (LDAP) CDP 是否有效,必须编写脚本或应用程序才能下载 CRL。 下载并打开 CRL 后,请确保 CRL 中有“下一个更新”字段,并且“下一个更新”字段中的时间尚未过去。

支持

如果确定以下一项或多项导致此问题,Microsoft 产品支持服务不支持第三方 CA 智能卡登录过程:

  • 证书格式不正确。
  • 第三方 CA 不提供证书状态或吊销状态。
  • 来自第三方 CA 的证书注册问题。
  • 第三方 CA 无法发布到 Active Directory。
  • 第三方 CSP。

其他信息

客户端计算机检查域控制器的证书。 因此,本地计算机会将域控制器证书的 CRL 下载到 CRL 缓存中。

脱机登录过程不涉及证书,仅涉及缓存的凭据。

若要强制立即在本地计算机上填充 NTAuth 存储,而不是等待下一个组策略传播,请运行以下命令以启动组策略更新:

  dsstore.exe -pulse  

还可以使用 Certutil.exe -scinfo 命令在 Windows Server 2003 和 Windows XP 中转储智能卡信息。