第 2 章 为智能卡验证配置身份管理
身份管理(IdM)支持使用如下方式的智能卡身份验证:
- IdM 证书颁发机构发布的用户证书
- 外部证书颁发机构发布的用户证书
您可以在 IdM 中为两种类型的证书配置智能卡验证。在这种情况下,rootca.pem
CA 证书是包含可信外部证书颁发机构证书的文件。
有关 IdM 中智能卡验证的详情,请参考 了解智能卡验证。
有关配置智能卡验证的详情:
2.1. 为智能卡验证配置 IdM 服务器
如果要为其证书是由身份管理 (IdM) CA 信任的 <EXAMPLE.ORG> 域的证书颁发机构 (CA) 发布的用户启用智能卡验证,您必须获取以下证书,以便在运行配置 IdM 服务器的 ipa-advise
脚本时添加它们:
- 为 <EXAMPLE.ORG> CA 直接发布或者通过一个或多个其子 CA 发布证书的根 CA 的证书。您可以从颁发机构发布证书的网页下载证书链。详情请查看 配置浏览器来启用证书身份验证 中的步骤 1 - 4a。
-
IdM CA 证书。您可以从运行 IdM CA 实例的 IdM 服务器上的
/etc/ipa/ca.crt
文件获取 CA 证书。 - 所有中间 CA 的证书,即介于 <EXAMPLE.ORG> CA 和 IdM CA 之间。
要为智能卡验证配置 IdM 服务器:
- 获取 PEM 格式的 CA 证书的文件。
-
运行内置的
ipa-advise
脚本。 - 重新加载系统配置。
先决条件
- 有到 IdM 服务器的 root 访问权限。
- 您有 root CA 证书和所有中间 CA 证书。
流程
创建要进行配置的目录:
[root@server]# mkdir ~/SmartCard/
进入该目录:
[root@server]# cd ~/SmartCard/
获取存储在 PEM 格式文件中的相关 CA 证书。如果您的 CA 证书存储再不同格式的文件中,如 DER,请将其转换为 PEM 格式。IdM 证书颁发机构证书采用 PEM 格式,位于
/etc/ipa/ca.crt
文件中。将 DER 文件转换为 PEM 文件:
# openssl x509 -in <filename>.der -inform DER -out <filename>.pem -outform PEM
为方便起见,将证书复制到您要进行配置的目录中:
[root@server SmartCard]# cp /tmp/rootca.pem ~/SmartCard/ [root@server SmartCard]# cp /tmp/subca.pem ~/SmartCard/ [root@server SmartCard]# cp /tmp/issuingca.pem ~/SmartCard/
另外,如果您使用外部证书颁发机构的证书,请使用
openssl x509
工具查看PEM
格式的文件内容,来检查Issuer
和Subject
值是否正确:[root@server SmartCard]# openssl x509 -noout -text -in rootca.pem | more
使用管理员特权,通过内置的
ipa-advise
工具生成配置脚本:[root@server SmartCard]# kinit admin [root@server SmartCard]# ipa-advise config-server-for-smart-card-auth > config-server-for-smart-card-auth.sh
config-server-for-smart-card-auth.sh
脚本执行以下操作:- 它配置 IdM Apache HTTP 服务器。
- 它在 KDC(Key Distribution Center)中启用 PKINIT(Public Key Cryptography for Initial Authentication in Kerberos)。
- 它将 IdM Web UI 配置为接受智能卡授权请求。
执行脚本,将包含根 CA 和子 CA 证书的 PEM 文件添加为参数:
[root@server SmartCard]# chmod +x config-server-for-smart-card-auth.sh [root@server SmartCard]# ./config-server-for-smart-card-auth.sh rootca.pem subca.pem issuingca.pem Ticket cache:KEYRING:persistent:0:0 Default principal: admin@IDM.EXAMPLE.COM [...] Systemwide CA database updated. The ipa-certupdate command was successful
注意在任何子 CA 证书前,确保将根 CA 的证书添加为参数,并且 CA 或子 CA 证书还没有过期。
另外,如果发布用户证书的证书颁发机构不提供任何在线证书状态协议(OCSP)响应程序,您可能需要禁用对 IdM Web UI 身份验证的 OCSP 检查:
在
/etc/httpd/conf.d/ssl.conf
文件中将SSLOCSPEnable
参数设为off
:SSLOCSPEnable off
重启 Apache 守护进程(httpd)使更改立即生效:
[root@server SmartCard]# systemctl restart httpd
警告如果您只使用 IdM CA 发出的用户证书,不要禁用 OCSP 检查。OCSP 响应器是 IdM 的一部分。
有关如何保持 OCSP 检查处于启用状态,同时防止 IdM 服务器拒绝用户证书(如果 IdM 服务器不包含有关颁发用户证书的 CA 侦听 OCSP 服务请求的位置的信息)的说明,请参阅 Apache mod_ssl 配置选项 中的
SSLOCSPDefaultResponder
指令。
该服务器现在被配置为智能卡验证。
要在整个拓扑中启用智能卡验证,请在每个 IdM 服务器中运行操作过程。