12.3. 使用外部 CA 续订 IdM CA 续订服务器证书
按照以下流程,使用外部 CA 续订身份管理(IdM)证书颁发机构(CA)证书,来签名证书签名请求(CSR)。在这个配置中,您的 IdM CA 服务器是外部 CA 的 subCA。外部 CA 可以(但不必)是 Active Directory 证书服务器(AD CS)。
如果外部证书颁发机构是 AD CS,您可以在 CSR 中为 IdM CA 证书指定您想要的模板。证书模板定义收到证书请求时使用的策略和规则。AD 中的证书模板与 IdM 中的证书配置集对应。
您可以通过其对象标识符(OID)定义特定的 AD CS 模板。OID 是不同发布机构发布的唯一数字值,用于唯一标识分布式应用中的数据元素、语法和其他部分。
另外,您还可以根据名称来定义特定的 AD CS 模板。例如,IdM CA 向 AD CS 提交的 CSR 中使用的默认配置集的名称是 subCA
。
要通过在 CSR 中指定 OID 或名称来定义配置集,请使用 external-ca-profile
选项。详情请查看 ipa-cacert-manage
man page。
除了使用现成的证书模板外,您还可以在 AD CS 中创建自定义证书模板,并在 CSR 中使用它。
先决条件
- 您具有对 IdM CA 续订服务器的 root 访问权限。
流程
完成此流程以使用外部签名续订 IdM CA 的证书,无论当前的 CA 证书是自签名还是外部签名。
创建要提交到外部 CA 的 CSR:
如果外部 CA 是 AD CS,请使用
--external-ca-type=ms-cs
选项。如果要使用与默认subCA
模板不同的模板,请使用--external-ca-profile
选项指定它:~]#
ipa-cacert-manage renew --external-ca --external-ca-type=ms-cs [--external-ca-profile=PROFILE]
Exporting CA certificate signing request, please wait The next step is to get /var/lib/ipa/ca.csr signed by your CA and re-run ipa-cacert-manage as: ipa-cacert-manage renew --external-cert-file=/path/to/signed_certificate --external-cert-file=/path/to/external_ca_certificate The ipa-cacert-manage command was successful如果外部 CA 不是 AD CS:
~]#
ipa-cacert-manage renew --external-ca
Exporting CA certificate signing request, please wait The next step is to get /var/lib/ipa/ca.csr signed by your CA and re-run ipa-cacert-manage as: ipa-cacert-manage renew --external-cert-file=/path/to/signed_certificate --external-cert-file=/path/to/external_ca_certificate The ipa-cacert-manage command was successful输出显示已创建了 CSR,并存储在
/var/lib/ipa/ca.csr
文件中。
-
将位于
/var/lib/ipa/ca.csr 中的 CSR
提交到外部 CA。这个过程根据要用作外部 CA 的服务的不同而有所不同。 检索发布的证书和 CA 证书链,用于在基本的 64 编码 Blob 中发布 CA,即:
- 如果外部 CA 不是 AD CS,则为 PEM 文件。
如果外部 CA 是 AD CS,则为 Base_64 证书。
每个证书服务的进程都有所不同。通常,网页或通知电子邮件中的下载链接允许管理员下载所有必要的证书。
如果外部 CA 是 AD CS,且您已通过 Microsoft Windows 认证授权机构管理窗口使用已知模板提交 CSR,AD CS 会立即发出证书,且 Save Certificate 对话框会出现在 AD CS Web 界面中,询问如何保存颁发的证书。
再次运行
ipa-cacert-manage renewal 命令
,添加提供完整证书链所需的所有 CA 证书文件。多次使用--external-cert-file
选项,根据需要指定任意文件:~]#
ipa-cacert-manage renew --external-cert-file=/path/to/signed_certificate --external-cert-file=/path/to/external_ca_certificate_1 --external-cert-file=/path/to/external_ca_certificate_2
在所有 IdM 服务器和客户端中,使用来自服务器的证书更新本地 IdM 证书数据库:
[client ~]$ ipa-certupdate Systemwide CA database updated. Systemwide CA database updated. The ipa-certupdate command was successful
验证
要检查您的更新是否成功,并将新的 CA 证书添加到
/etc/ipa/ca.crt
文件中:[client ~]$ openssl crl2pkcs7 -nocrl -certfile /etc/ipa/ca.crt | openssl pkcs7 -print_certs -text -noout [...] Certificate: Data: Version: 3 (0x2) Serial Number: 39 (0x27) Signature Algorithm: sha256WithRSAEncryption Issuer: O=IDM.EXAMPLE.COM, CN=Certificate Authority Validity Not Before: Jul 1 16:32:45 2019 GMT Not After : Jul 1 16:32:45 2039 GMT Subject: O=IDM.EXAMPLE.COM, CN=Certificate Authority [...]
输出显示更新已成功,因为新 CA 证书使用旧的 CA 证书列出。