Menu Close

17.4. 使用 certmonger 为服务获取 IdM 证书

要确保您的 IdM 客户端上运行的浏览器和 Web 服务之间的通信安全并加密,请使用 TLS 证书。如果要将 Web 浏览器限制为信任由 webserver-ca 子 CA 而不是其他 IdM 子 CA 签发的证书,从 webserver-ca 子 CA 获取 web 服务的 TLS 证书。

这部分论述了如何使用 certmonger,为在一个 IdM 客户端上允许的一个服务(HTTP/my_company.idm.example.com@IDM.EXAMPLE.COM)获取 IdM 证书。

使用 certmonger 请求证书时,certmonger 会在到期续订时自动管理和更新证书。

有关 certmonger 请求服务证书时会发生的情况的视觉表示,请参阅 第 17.5 节 “请求服务证书的 certmonger 的通信流”

先决条件

  • Web 服务器作为 IdM 客户端注册。
  • 您有要在其上执行这个过程的 IdM 客户端的 root 访问权限。
  • 为其请求证书的服务不需要在 IdM 中预先存在。

步骤

  1. 在运行 HTTP 服务的 my_company.idm.example.com IdM 客户端中,为与 HTTP/my_company.idm.example.com@IDM.EXAMPLE.COM 主体对应的服务请求一个证书,并指定它。

    • 证书将存储在本地 /etc/pki/tls/certs/httpd.pem 文件中
    • 私钥将存储在本地 /etc/pki/tls/private/httpd.key 文件中
    • webserver-ca 子 CA 是签发的证书颁发机构
    • SubjectAltName 的一个 extensionRequest 添加至 my_company.idm.example.com 的 DNS 名称的签名请求中:

      # ipa-getcert request -K HTTP/my_company.idm.example.com -k /etc/pki/tls/private/httpd.key -f /etc/pki/tls/certs/httpd.pem -g 2048 -D my_company.idm.example.com -X webserver-ca -C "systemctl restart httpd"
      New signing request "20190604065735" added.

      在以上命令中:

      • ipa-getcert request 命令指定要从 IdM CA 获取的证书。ipa-getcert request 命令是 getcert request -c IPA 的一个快捷方式。
      • -g 选项指定如果尚未存在密钥时生成的密钥大小。
      • -D 选项指定要添加到请求的 SubjectAltName DNS 值。
      • -X 选项指定证书的签发者必须是 webserver-ca,而不是 ipa
      • -C 选项指示 certmonger 在获取证书后重启 httpd 服务。
      • 要指定使用特定配置集发布证书,请使用 -T 选项。
  2. 另外,要检查请求的状态:

    # ipa-getcert list -f /etc/pki/tls/certs/httpd.pem
    Number of certificates and requests being tracked: 3.
    Request ID '20190604065735':
        status: MONITORING
        stuck: no
        key pair storage: type=FILE,location='/etc/pki/tls/private/httpd.key'
        certificate: type=FILE,location='/etc/pki/tls/certs/httpd.crt'
        CA: IPA
        issuer: CN=WEBSERVER,O=IDM.EXAMPLE.COM
    
    [...]

    输出显示请求处于 MONITORING 状态,这表示已获取了证书。密钥对和证书的位置是请求的。