使用第三方CA证书实现智能卡登录

  • Post author:
  • Post category:其他


转载自:http://support.microsoft.com/kb/281245/zh-cn

概要:

您可以通过遵循本文中的准则来启用智能卡登录过程使用 Microsoft Windows 2000 和非 Microsoft 证书颁发机构 (CA)。如本文后面所述,没有为这种配置的有限的支持。

要求

对 Active Directory 的智能卡身份验证要求该智能卡工作站、 活动的目录以及 Active Directory 域控制器配置正确。active Directory 必须信任证书颁发机构对基于该 CA 发行的证书的用户进行身份验证。必须正确配置的证书配置智能卡工作站和域控制器。

如使用任何 PKI 实现所有各方都必须信任根 CA 的颁发 CA 链。域控制器和智能卡工作站信任此根。

活动目录和 $ 域控制器配置
  • 必需: Active Directory 必须具有在第三方颁发 CA 在 NTAuth 存储区来验证用户到活动目录中。
  • 所需的: 必须使用域控制器证书进行身份验证的智能卡用户配置域控制器。
  • 可选: Active Directory 可以被配置为分发到受信任的根 CA 存储区使用组策略的所有域成员的第三方根 CA。
智能卡证书和 $ 工作站要求
  • 必需: 完全”配置说明”部分所述的智能卡要求必须满足,包括字段的文本格式。如果不满足时,智能卡身份验证将失败。
  • 必需: 的智能卡和私钥必须安装智能卡上。

配置说明

  1. 导出或下载第三方根证书。如何获取三方根证书因供应商。证书必须是以 Base64 编码 X.509 格式。
  2. 将第三方根 CA 添加到受信任的根在 Active Directory 组策略对象中。要配置组策略分发第三方 CA 到受信任的根存储区的所有域计算机的 Windows 2000 域中,请执行以下操作:

    1. 单击

      开始

      ,指向

      程序

      、 指向

      管理工具

      ,然后单击

      Active Directory 用户和计算机

    2. 在左窗格中找到您要编辑的策略已应用的域。
    3. 右键单击该的域,然后单击

      属性

    4. 单击

      组策略

      选项卡。
    5. 单击

      默认域策略组策略

      对象,然后单击

      编辑

      。将打开一个新窗口。
    6. 在左窗格中展开下列项目:

      • 计算机配置
      • Windows 设置
      • 安全设置
      • 公用密钥策略
    7. 用鼠标右键单击

      受信任的根证书颁发机构

    8. 选择

      所有任务

      ,然后单击

      导入

    9. 按照向导中导入证书。
    10. 单击

      确定

    11. 关闭

      组策略

      窗口。
  3. 添加第三方颁发到 NTAuth 存储在 Active Directory 中的该 CA。

    必须在 NTAuth 存储区的 CA 从颁发智能卡登录证书。默认状态下,Microsoft 企业 ca 将被添加到 NTAuth 存储区。

    • 如果颁发智能卡登录证书或 $ 域控制器证书的 CA 不会正确过帐 NTAuth 存储区中的智能卡登录过程中不起作用。相应的答案是”无法验证凭据”。
    • 在 NTAuth 存储区位于林的配置容器中。例如对于示例位置如下所示:

      LDAP://server1.name.com/CN=NTAuthCertificates,CN=Public 密钥服务、 CN = 服务,CN = 配置,DC = DC 的名称 = com
    • 默认状态下,安装 Microsoft 企业 CA 时创建该存储区。该对象通过 ADSIedit.msc Windows 2000 支持工具中或通过使用 LDIFDE 也可以手动创建。有关详细的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:


      295663

      如何导入企业 NTAuth 存储区的第三方证书颁发机构 (CA) 证书
    • 相关的属性是 cACertificate,这是一个八位位组 String,ASN 编码的证书的多值列表。

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


      HKEY_LOCAL_MACHINE\Software\Microsoft\EnterpriseCertificates\NTAuth\Certificates

      这将刷新每隔八小时 (在的典型组策略脉冲间隔) 的工作站上。

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

    如果您在一个 Active Directory 目录林中安装 Microsoft 企业 CA,所有域控制器将自动都注册的域控制器证书。有关从第三方 CA 的域控制器证书的要求的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:


    291010

    从第三方 CA 的域控制器证书的要求




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

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

    注册从满足规定的要求的第三方 CA 证书。注册方法根据 CA 供应商的不同而不同。

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

    • CRL 分发点 (CDP) 位置 (其中,CRL 是证书吊销列表) 必须是已填充、 联机,和可用。例如:

      [] 1CRL 分发点

      分发点名称:

      完整名称:

      URL=http://server1.name.com/CertEnroll/caname.crl

    • 密钥用法

      = 数字签名

    • 基本约束

      [使用者类型 = 结束实体路径长度限制 = 无](可选)

    • 增强型密钥用法

      =

      • 客户端身份验证 (1.3.6.1.5.5.7.3.2)

        (在客户端验证 OID) 是只需的如果证书用于 SSL 身份验证)。
      • 智能卡登录 (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 字符串

    • 主题

      = 用户的可分辨的名称。此字段是必填字段扩展名为但填充此字段是可选的。
  6. 有两种预定义的类型的私有密钥。这些键是

    签名 Only(AT_SIGNATURE)



    密钥 Exchange(AT_KEYEXCHANGE)

    。为了正常工作的智能卡登录,智能卡登录证书必须具有

    密钥 Exchange(AT_KEYEXCHANGE)

    私钥类型。
  7. 智能卡工作站上安装智能卡的驱动程序和软件。

    请确保智能卡在工作站上安装了适当的智能卡读取器设备和驱动程序软件。这种情况变化智能卡读取器供应商。

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

    如果智能卡不已经放到智能卡用户的个人存储区中注册过程,在第 4 步中,然后您必须将证书导入用户的个人存储区。若要这样做:

    1. 打开 Microsoft 管理控制台 (MMC) 包含证书管理单元。
    2. 在控制台树中的在 $

      个人

      ,下单击

      证书



    3. 所有任务

      菜单上单击启动证书导入向导

      导入

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




      : 如果该文件包含证书的是个人信息交换 (PKCS # 12) 文件,键入您用来加密私有密钥,单击以选择适当的复选框,如果您希望可导出,和然后 (如果您要使用此功能) 启用强私钥保护私钥的密码。


      注意

      : 若要启用强私钥保护,您必须使用逻辑证书存储查看模式。

    5. 选择将自动放在 $ 根据证书类型的证书存储区中的证书选项。
  9. 安装到智能卡上的第三方智能卡证书。根据加密服务提供程序 (CSP) 和智能卡供应商,如何执行此操作会有所不同。请参阅供应商的文档的说明。
  10. 登录到与智能卡在工作站上。

要求

对 Active Directory 的智能卡身份验证要求该智能卡工作站、 活动的目录以及 Active Directory 域控制器配置正确。active Directory 必须信任证书颁发机构对基于该 CA 发行的证书的用户进行身份验证。必须正确配置的证书配置智能卡工作站和域控制器。

如使用任何 PKI 实现所有各方都必须信任根 CA 的颁发 CA 链。域控制器和智能卡工作站信任此根。

活动目录和 $ 域控制器配置
  • 必需: Active Directory 必须具有在第三方颁发 CA 在 NTAuth 存储区来验证用户到活动目录中。
  • 所需的: 必须使用域控制器证书进行身份验证的智能卡用户配置域控制器。
  • 可选: Active Directory 可以被配置为分发到受信任的根 CA 存储区使用组策略的所有域成员的第三方根 CA。
智能卡证书和 $ 工作站要求
  • 必需: 完全”配置说明”部分所述的智能卡要求必须满足,包括字段的文本格式。如果不满足时,智能卡身份验证将失败。
  • 必需: 的智能卡和私钥必须安装智能卡上。

配置说明

  1. 导出或下载第三方根证书。如何获取三方根证书因供应商。证书必须是以 Base64 编码 X.509 格式。
  2. 将第三方根 CA 添加到受信任的根在 Active Directory 组策略对象中。要配置组策略分发第三方 CA 到受信任的根存储区的所有域计算机的 Windows 2000 域中,请执行以下操作:

    1. 单击

      开始

      ,指向

      程序

      、 指向

      管理工具

      ,然后单击

      Active Directory 用户和计算机

    2. 在左窗格中找到您要编辑的策略已应用的域。
    3. 右键单击该的域,然后单击

      属性

    4. 单击

      组策略

      选项卡。
    5. 单击

      默认域策略组策略

      对象,然后单击

      编辑

      。将打开一个新窗口。
    6. 在左窗格中展开下列项目:

      • 计算机配置
      • Windows 设置
      • 安全设置
      • 公用密钥策略
    7. 用鼠标右键单击

      受信任的根证书颁发机构

    8. 选择

      所有任务

      ,然后单击

      导入

    9. 按照向导中导入证书。
    10. 单击

      确定

    11. 关闭

      组策略

      窗口。
  3. 添加第三方颁发到 NTAuth 存储在 Active Directory 中的该 CA。

    必须在 NTAuth 存储区的 CA 从颁发智能卡登录证书。默认状态下,Microsoft 企业 ca 将被添加到 NTAuth 存储区。

    • 如果颁发智能卡登录证书或 $ 域控制器证书的 CA 不会正确过帐 NTAuth 存储区中的智能卡登录过程中不起作用。相应的答案是”无法验证凭据”。
    • 在 NTAuth 存储区位于林的配置容器中。例如对于示例位置如下所示:

      LDAP://server1.name.com/CN=NTAuthCertificates,CN=Public 密钥服务、 CN = 服务,CN = 配置,DC = DC 的名称 = com
    • 默认状态下,安装 Microsoft 企业 CA 时创建该存储区。该对象通过 ADSIedit.msc Windows 2000 支持工具中或通过使用 LDIFDE 也可以手动创建。有关详细的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:


      295663

      如何导入企业 NTAuth 存储区的第三方证书颁发机构 (CA) 证书
    • 相关的属性是 cACertificate,这是一个八位位组 String,ASN 编码的证书的多值列表。

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


      HKEY_LOCAL_MACHINE\Software\Microsoft\EnterpriseCertificates\NTAuth\Certificates

      这将刷新每隔八小时 (在的典型组策略脉冲间隔) 的工作站上。

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

    如果您在一个 Active Directory 目录林中安装 Microsoft 企业 CA,所有域控制器将自动都注册的域控制器证书。有关从第三方 CA 的域控制器证书的要求的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:


    291010

    从第三方 CA 的域控制器证书的要求




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

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

    注册从满足规定的要求的第三方 CA 证书。注册方法根据 CA 供应商的不同而不同。

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

    • CRL 分发点 (CDP) 位置 (其中,CRL 是证书吊销列表) 必须是已填充、 联机,和可用。例如:

      [] 1CRL 分发点

      分发点名称:

      完整名称:

      URL=http://server1.name.com/CertEnroll/caname.crl

    • 密钥用法

      = 数字签名

    • 基本约束

      [使用者类型 = 结束实体路径长度限制 = 无](可选)

    • 增强型密钥用法

      =

      • 客户端身份验证 (1.3.6.1.5.5.7.3.2)

        (在客户端验证 OID) 是只需的如果证书用于 SSL 身份验证)。
      • 智能卡登录 (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 字符串

    • 主题

      = 用户的可分辨的名称。此字段是必填字段扩展名为但填充此字段是可选的。
  6. 有两种预定义的类型的私有密钥。这些键是

    签名 Only(AT_SIGNATURE)



    密钥 Exchange(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 存储区或从颁发 CA 的证书驻留在 NTAuth 存储区中获取 DC 证书。

      如果域控制器或智能卡工作站不信任根 CA 的域控制器的证书链接,然后您必须配置这些计算机信任的根 CA。

    • 智能卡有一个不受信任的证书。 如果不包含在 NTAuth 存储区的智能卡证书的 CA 证书的颁发 CA,您必须将其添加到在 NTAuth 存储区或从颁发 CA 的证书驻留在 NTAuth 存储区中获得智能卡证书。

      如果域控制器或智能卡工作站不信任根 CA 的用户的智能卡证书链接,然后您必须配置这些计算机信任的根 CA。

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


      注意

      : 您不具有将私钥存储在工作站上用户的配置文件。它只需要将存储在智能卡上。

    • 智能卡上未安装正确的智能卡证书或私钥。 有效的智能卡证书必须安装在智能卡上使用私钥和证书必须匹配证书存储在智能卡在工作站上的智能卡用户的配置文件中。
    • 无法从智能卡读取器检索的智能卡证书。 这可以是智能卡读取器硬件或 $ 智能卡读取器的驱动程序软件有问题。验证智能卡上查看该证书和私钥,可以使用智能卡读取器供应商的软件。
    • 智能卡证书已经过期。
    • 在没有用户主体名称 (UPN) 中都可用的智能卡证书 SubjAltName 扩展名。
    • 在 SubjAltName 字段中的智能卡证书的 UPN 不正确的格式设置。如果在该 SubjAltName 信息显示为十六进制 / ASCII 原始数据格式的文本不 ASN1 / utf-8。
    • 智能卡有一个否则为格式不正确或不完整的证书。 为每个这些条件您必须申请一个新的有效的智能卡证书并将其安装到智能卡上和到智能卡在工作站上用户的配置文件。智能卡证书必须满足本文前面所述 SubjAltName 字段中包括一个格式正确的 UPN 字段要求。

      如果您的有效的智能卡证书在到期,也可能续订该的智能卡证书,但这通常是更复杂且难以比申请一个新的智能卡证书。

    • 用户不具有在 Active Directory 用户帐户中定义的 UPN。 在 ds 中的用户的帐户必须具有有效的 UPN userPrincipalName 属性的智能卡用户的 Active Directory 用户帐户中。
    • 在 $ 证书中的 UPN 与该用户的 Active Directory 用户帐户中定义的 UPN 不匹配。 您必须在智能卡用户能够 Active Directory 用户帐户中的 UPN 更正在智能卡用户的 Active Directory 的用户帐户或智能卡证书,以便在 SubjAltName 字段匹配值的 UPN re-issue UPN。我们建议的智能卡 UPN 的第三方 ca 与匹配 userPrincipalName 用户帐户属性。但是,如果 UPN 证书中的帐户 (格式 samAccountName@domain_FQDN) 在 implict UPN,UPN 不必显式匹配 userPrincipalName 属性。
吊销检查的问题

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

系统无法将您记录。用于身份验证的智能卡证书不被信任。




: 查找和下载证书吊销列表 (CRL)、 一个无效的 CRL、 一个已吊销的证书和吊销状态为”未知”失败的所有视为吊销故障。

从客户端和域控制器都必须成功吊销检查。请确保在以下情况成立:

  • 吊销检查不是关闭。

    吊销检查的提供程序不能被关闭了内置吊销。如果安装自定义的可安装吊销提供程序,则它必须打开。

  • 除了根 CA 证书链中每个 CA 证书包含证书中的有效 CDP 扩展。
  • CRL 有一个下一步更新字段,是最新的 CRL。 您可以检查 CRL 是联机在 CDP 和有效的 Internet Explorer 从下载。您应该能够下载并在从智能卡 workstation(s) 和域控制器的 Internet 浏览器中查看从任何超文本传输协议 (HTTP) 或文件传输协议 (FTP) cdp 的 CRL。

验证每个唯一的 HTTP 和 FTP CDP 由您的企业中的证书联机并可用。

要验证 CRL 在线以及是否可以从 FTP 或 HTTP CDP,请执行以下操作:

  1. 打开问题中的证书、 双击.cer 文件或双击证书存储区中。
  2. 单击

    详细信息

    选项卡,向下滚动并选择

    CRL 分发点

    域。
  3. 在底部窗格中突出显示完整的 FTP 或 HTTP 统一资源定位符 (URL),并将其复制。
  4. 打开 Internet 资源管理器并将该 URL 粘贴到

    地址

    栏。
  5. 在收到提示,选择要

    打开

    CRL。
  6. 请确保在 CRL 没有

    下一个更新

    的字段,并且具有不传递在

    下一步更新

    域中的时间。

若要下载,或验证一个轻量目录访问协议 (LDAP) CDP 有效,必须编写一个脚本或应用程序下载 CRL。在下载并将打开 CRL 之后确保 CRL 中没有

下一个更新

的字段,并在下一步更新域中的时间具有不传递。

支持

如果确定一个或多个以下各项分配给了该问题,Microsoft 产品支持服务不支持第三方 CA 智能卡登录过程:

  • 不正确的证书格式。
  • 证书的状态或不可用,从第三方 CA 的吊销状态。
  • 从第三方 CA 颁发的证书注册。
  • 第三方 CA 不能将发布到 Active Directory 中。
  • 第三方 CSP。

其他信息

客户端计算机在域控制器的证书进行检查。因此,在本地计算机到 CRL 高速缓存下载的域控制器证书的 CRL。

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

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


dsstore.exe-脉冲

可以通过使用

Certutil.exe-scinfo

命令还转储出在 Windows Server 2003 中和在 Windows XP 中的智能卡信息。