第 24 章 管理用户、主机和服务的证书
身份管理(IdM)支持两种类型的证书颁发机构(CA):
- 集成的 IdM CA
- 集成的 CA 可以为用户、主机和服务创建、吊销和发布证书。如需了解更多详细信息,请参阅 第 24.1 节 “使用集成的 IdM CA 管理证书”。IdM 支持创建轻量级子 CA。如需了解更多详细信息,请参阅 第 26.1 节 “轻量级子 CA”
- 外部 CA
- 外部 CA 是集成的 IdM CA 以外的 CA。使用 IdM 工具,您可以将这些 CA 发布的证书添加到用户、服务或主机,以及删除它们。如需了解更多详细信息,请参阅 第 24.2 节 “管理由外部 CA 发布的证书”。
每个用户、主机或服务都可以分配多个证书。
注意
有关 IdM 服务器的 CA 配置的详情,请参考 第 2.3.2 节 “确定要使用的 CA 配置”。
24.1. 使用集成的 IdM CA 管理证书
24.1.1. 为用户、主机或服务请求新证书
使用以下命令请求证书:
- IdM Web UI,请查看 “Web UI:请求新证书”一节。
- 命令行请查看 “命令行:请求新证书”一节。
请注意,您必须使用第三方工具自行生成证书请求。以下流程使用
certutil
和 openSSL
工具。
重要
通常运行在存储私钥的专用服务节点上的服务。将服务的私钥复制到 IdM 服务器被视为不安全。因此,在为服务请求证书时,在服务节点上创建 CSR。
Web UI:请求新证书
- 在 Identity 选项卡下,选择 Users、Hosts 或 Services 子选项卡。
- 单击用户、主机或服务的名称,来打开其配置页面。
图 24.1. 主机列表
- 单击
。 - 可选:选择发布 CA 和配置文件 ID。
- 按照屏幕上的说明操作,以使用
certutil
。 - 单击。
命令行:请求新证书
在标准情况下使用
certutil
请求新证书 - 请参阅 第 24.1.1.1 节 “使用 certutil 请求新证书”。使用 openSSL
请求新证书,以启用 Kerberos 别名来使用主机或服务证书 - 请参阅 第 24.1.1.2 节 “使用 OpenSSL 准备多个 SAN 字段的证书请求”。
24.1.1.1. 使用 certutil 请求新证书
- 为证书数据库创建一个临时目录:
# mkdir ~/certdb/
- 创建新的临时证书数据库,例如:
# certutil -N -d ~/certdb/
- 创建证书签名请求(CSR),并将输出重定向到文件。例如,要为 4096 位证书创建 CSR,并将主题设为 CN=server.example.com,O=EXAMPLE.COM :
# certutil -R -d ~/certdb/ -a -g 4096 -s "CN=server.example.com,O=EXAMPLE.COM" -8 server.example.com > certificate_request.csr
- 将证书请求提交到 CA。详情请查看 第 24.1.1.4 节 “将证书请求提交到 IdM CA”。
24.1.1.2. 使用 OpenSSL 准备多个 SAN 字段的证书请求
- 为 Kerberos 主体 test /server.example.com 创建一个或多个别名,如test1/ server.example.com、test2/ server.example.com。详情请查看 第 20.2.1 节 “Kerberos 主要别名”。
- 在 CSR 中,为 dnsName(server.example.com)和otherName(test2/server.example.com)添加 subjectAltName。要做到这一点,请配置
openssl.conf
文件,使其包含以下指定 UPN otherName 和 subjectAltName 的行:otherName=1.3.6.1.4.1.311.20.2.3;UTF8:test2/server.example.com@EXAMPLE.COM DNS.1 = server.example.com
- 使用
openssl
创建证书请求:openssl req -new -newkey rsa:2048 -keyout test2service.key -sha256 -nodes -out certificate_request.csr -config openssl.conf
- 将证书请求提交到 CA。详情请查看 第 24.1.1.4 节 “将证书请求提交到 IdM CA”。
24.1.1.3. 使用 Certmonger 请求新证书
您可以使用
certmonger
服务从 IdM CA 请求证书。详情请查看《 系统级身份验证指南 》中的请求 CA 签名证书 Through SCEP 部分。
24.1.1.4. 将证书请求提交到 IdM CA
将证书请求文件提交到在 IdM 服务器上运行的 CA。务必指定与新签发的证书关联的 Kerberos 主体:
# ipa cert-request certificate_request.csr --principal=host/server.example.com
IdM 中的 ipa cert-request 命令使用以下默认值:
- 证书配置文件:
caIPAserviceCert
要选择自定义配置集,请在 ipa cert-request 命令中使用--profile-id
选项。有关创建自定义证书配置集的详情,请参考 第 24.4.1 节 “创建证书配置文件”。 - 集成的 CA:
ipa
(IdM root CA)要选择一个子 CA,请在 ipa cert-request 命令中使用--ca
选项。
详情请查看 ipa cert-request --help 命令的输出。
24.1.2. 使用集成的 IdM CA 撤销证书
如果您需要在证书过期前无效,您可以撤销证书。使用以下方法撤销证书:
- IdM Web UI,请查看 “Web UI:撤销证书”一节
- 命令行,请查看 “命令行:撤销证书”一节
已吊销的证书是无效的,不能用于身份验证。所有撤销都是永久性的,但原因 6:证书已保留.
ID | 原因 | 解释 |
---|---|---|
0 | 未指定 | |
1 | 密钥泄露 |
签发证书的密钥不再被信任。
可能的原因是:丢失令牌,非正常访问文件。
|
2 | CA 泄露 | 签发证书的 CA 不再被信任。 |
3 | 隶属关系更改了 |
可能的原因:
|
4 | 被取代 | 较新的证书替换了当前的证书。 |
5 | 停止操作 | 主机或服务将被停用。 |
6 | 证书冻结 | 证书被临时吊销。您可稍后恢复证书。 |
8 | 从 CRL 中删除 | 证书不再包含在证书吊销列表(CRL)中。 |
9 | 特权收回 | 用户、主机或服务不再被允许使用证书。 |
10 | 属性授权(AA)泄露 | AA 证书不再被信任。 |
Web UI:撤销证书
撤销证书:
- 打开 Authentication 选项卡,然后选择 证书 子选项卡。
- 单击证书的序列号,来打开证书信息页面。
图 24.2. 证书列表
- 单击
。 - 选择吊销的原因,然后单击 表 24.1 “吊销原因”。。详情请查看
命令行:撤销证书
使用 ipa cert-revoke 命令,并指定:
- 证书序列号
- 标识撤销原因的数字 ; 详情请查看 表 24.1 “吊销原因”
例如,由于原因 1,要吊销序列号为
1032
的证书:主要总结:
$ ipa cert-revoke 1032 --revocation-reason=1
24.1.3. 使用集成的 IdM CA 恢复证书
如果您因为原因 6 撤销了证书:证书已保留,您可以重新恢复。使用以下方法恢复证书:
- IdM Web UI,请查看 “Web UI:恢复证书”一节
- 命令行,请查看 “命令行:恢复证书”一节
Web UI:恢复证书
- 打开 Authentication 选项卡,然后选择 证书 子选项卡。
- 单击证书的序列号,来打开证书信息页面。
图 24.3. 证书列表
- 单击
。
命令行:恢复证书
使用 ipa cert-remove-hold 命令并指定证书序列号。例如:
$ ipa cert-remove-hold 1032