13.3. 使用外部 CA 续订 IdM CA 续订服务器证书
按照以下流程,使用外部 CA 续订身份管理(IdM)证书颁发机构(CA)证书,来签名证书签名请求(CSR)。在这个配置中,您的 IdM CA 服务器是外部 CA 的子 CA。外部 CA 可以,但不必是 Active Directory 证书服务器(AD CS)。
如果外部证书颁发机构是 AD CS,您可以在 CSR 中指定 IdM CA 证书的模板。证书模板定义了 CA 在收到证书请求时使用的策略和规则。AD 中的证书模板与 IdM 中的证书配置集对应。
您可以根据其对象标识符(OID)定义特定的 AD CS 模板。OID 是各种颁发机构发布的唯一数字值,用于识别数据元素、语法以及分布式应用程序的其他部分。
另外,您还可以通过其名称来定义特定的 AD CS 模板。例如,由 IdM CA 提交的 CSR 中使用的默认配置集的名称是 subCA
。
要通过在 CSR 中指定 OID 或名称来定义配置集,请使用 external-ca-profile
选项。详情请查看您系统上的 ipa-cacert-manage
手册页。
除了使用可用的证书模板外,您还可以在 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 的服务的不同而有所不同。 在 base 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 renew
命令,添加提供完整证书链所需的所有 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 证书。