本文提供了一些指南,用于向第三方证书颁发机构启用智能卡登录。
原始 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 存储。
智能卡证书和工作站要求
- 必需:必须满足“配置说明”部分中概述的所有智能卡要求,包括字段的文本格式。 如果未满足智能卡身份验证,则智能卡身份验证会失败。
- 必需:智能卡和私钥必须安装在智能卡上。
配置说明
-
导出或下载第三方根证书。 如何获取参与方根证书因供应商而异。 证书必须采用 Base64 编码的 X.509 格式。
-
将第三方根 CA 添加到 Active Directory 组策略对象中的受信任根。 若要在 Windows 2000 域中配置组策略,将第三方 CA 分发到所有域计算机的受信任根存储:
- 单击“开始”,依次指向“程序”、“管理工具”,然后单击“Active Directory 用户和计算机”。
- 在左窗格中,找到要在其中应用策略的域。
- 右键单击域,然后单击“ 属性”。
- 单击“组策略”选项卡。
- 单击默认域策略组策略对象,然后单击“编辑”。 新 窗口将打开。
- 在左窗格中,展开以下项:
- 计算机配置
- Windows 设置
- 安全设置
- 公钥策略
- 右键单击 “受信任的根证书颁发机构”。
- 选择 “所有任务”,然后单击“ 导入”。
- 按照向导中的说明导入证书。
- 单击“确定”。
- 关闭“组策略”窗口。
-
将颁发 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 小时刷新一次(典型的组策略脉冲间隔)。
-
-
在域控制器上请求并安装域控制器证书。 要对智能卡用户进行身份验证的每个域控制器都必须具有域控制器证书。
如果在 Active Directory 林中安装Microsoft企业 CA,则所有域控制器会自动注册域控制器证书。 有关来自第三方 CA 的域控制器证书要求的详细信息,请单击以下文章编号以查看Microsoft知识库中的文章:
291010 第三方 CA 中域控制器证书的要求
注意
域控制器证书用于安全套接字层(SSL)身份验证、简单邮件传输协议(SMTP)加密、远程过程调用(RPC)签名和智能卡登录过程。 使用非Microsoft CA 向域控制器颁发证书可能会导致意外行为或不受支持的结果。 缺少主题名称的不正确格式的证书或证书可能会导致这些或其他功能停止响应。
-
从第三方 CA 请求智能卡证书。
从满足规定要求的第三方 CA 注册证书。 注册方法因 CA 供应商而异。
智能卡证书具有特定的格式要求:
-
CRL 分发点(CDP)位置(其中 CRL 是认证吊销列表)必须填充、联机和可用。 例如:
[1]CRL Distribution Point Distribution Point Name: Full Name: URL=http://server1.name.com/CertEnroll/caname.crl -
密钥用法 = 数字签名
-
基本约束 [Subject Type=End Entity, Path Length Constraint=None] (可选)
-
增强型密钥用法 =
- 客户端身份验证 (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 字符串
-
使用者 = 用户的可分辨名称。 此字段是强制扩展,但此字段的填充是可选的。
-
-
有两种类型的预定义私钥。 这些密钥仅签名**(AT_SIGNATURE)和密钥交换(AT_KEYEXCHANGE)。** 智能卡登录证书必须具有 密钥 Exchange(AT_KEYEXCHANGE) 私钥类型,才能使智能卡登录正常工作。
-
将智能卡驱动程序和软件安装到智能卡工作站。
请确保在智能卡工作站上安装适当的智能卡读取器和驱动程序软件。 它因智能卡读取器供应商而异。
-
将第三方智能卡证书安装到智能卡工作站。
如果在步骤 4 的注册过程中尚未将智能卡用户的个人存储放入智能卡,则必须将证书导入到用户的个人存储中。 为此,请执行以下操作:
-
打开包含证书管理单元的Microsoft管理控制台(MMC)。
-
在控制台树的“个人”下,单击“证书”。
-
在“所有任务”菜单上,单击“导入”以启动证书导入向导。
-
单击包含要导入的证书的文件。
注意
如果包含证书的文件是个人信息交换 (PKCS #12) 文件,请键入用于加密私钥的密码,如果希望私钥可导出,请单击以选中相应的复选框,然后启用强私钥保护(如果要使用此功能)。
注意
若要启用强私钥保护,必须使用逻辑证书存储视图模式。
-
选择根据证书类型自动将证书放入证书存储中的选项。
-
-
将第三方智能卡证书安装到智能卡上。 此安装因加密服务提供商(CSP)和智能卡供应商而异。 有关说明,请参阅供应商的文档。
-
使用智能卡登录到工作站。
可能的问题
在智能卡登录期间,最常见的错误消息是:
系统无法登录。 无法验证凭据。
此消息是一般错误,可能是以下一个或多个问题的结果。
证书和配置问题
-
域控制器没有域控制器证书。
-
智能卡证书的 SubjAltName 字段格式不正确。 如果 SubjAltName 字段中的信息显示为十六进制/ASCII 原始数据,则文本格式不是 ASN1/UTF-8。
-
域控制器具有格式错误或不完整的证书。
-
对于以下每个条件,必须请求新的有效域控制器证书。 如果有效的域控制器证书已过期,可以续订域控制器证书,但此过程更为复杂,通常比请求新的域控制器证书更困难。
- 域控制器证书已过期。
- 域控制器具有不受信任的证书。 如果 NTAuth 存储不包含域控制器证书的发证 CA 的证书颁发机构(CA)证书,则必须将其添加到 NTAuth 存储,或者从证书驻留在 NTAuth 存储中的发证 CA 获取 DC 证书。
如果域控制器或智能卡工作站不信任域控制器证书链到的根 CA,则必须将这些计算机配置为信任该根 CA。
-
智能卡具有不受信任的证书。 如果 NTAuth 存储不包含智能卡证书颁发 CA 的 CA 证书,则必须将其添加到 NTAuth 存储,或者从证书驻留在 NTAuth 存储中的发证 CA 获取智能卡证书。
如果域控制器或智能卡工作站不信任用户智能卡证书链到的根 CA,则必须将这些计算机配置为信任该根 CA。
-
智能卡的证书未安装在工作站上的用户存储中。 存储在智能卡上的证书必须位于智能卡工作站上,该证书必须位于使用智能卡登录的用户的配置文件中。
注意
无需将私钥存储在工作站上的用户配置文件中。 只需将它存储在智能卡上。
-
智能卡上未安装正确的智能卡证书或私钥。 有效的智能卡证书必须安装在具有私钥的智能卡上,并且证书必须与智能卡工作站上智能卡用户配置文件中存储的证书匹配。
-
无法从智能卡读取器检索智能卡的证书。 智能卡读取器硬件或智能卡读取器的驱动程序软件可能出现问题。 验证是否可以使用智能卡读取器供应商的软件查看智能卡上的证书和私钥。
-
智能卡证书已过期。
-
智能卡证书的 SubjAltName 扩展中没有用户主体名称(UPN)。
-
智能卡证书的 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 是否处于联机状态并有效。 应该能够从 Internet Explorer 中的任意超文本传输协议(HTTP)或文件传输协议(FTP)CDP 下载和查看 CRL,这些 CDP 来自智能卡工作站(s)和域控制器(s)。
验证企业中证书使用的每个唯一 HTTP 和 FTP CDP 是否联机且可用。
若要验证 CRL 是否处于联机状态,并且可从 FTP 或 HTTP CDP 获取:
- 若要打开有问题的证书,请双击.cer文件或双击存储中的证书。
- 单击“详细信息”选项卡,然后选择 “CRL 分发点 ”字段。
- 在底部窗格中,突出显示完整的 FTP 或 HTTP 统一资源定位符(URL)并将其复制。
- 打开 Internet Explorer 并将 URL 粘贴到地址栏中。
- 收到提示时,选择打开 CRL 的选项。
- 请确保 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 中转储智能卡信息。