Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

22.3. 为 OpenPegasus 配置 SSL 证书

OpenLMI 使用基于 Web 的企业管理(WBEM)协议,该协议通过 HTTP 传输层运行。标准 HTTP 基本身份验证在此协议中执行,这意味着用户名和密码与请求一起传输。

需要将 OpenPegasus CIMOM 配置为使用 HTTPS 进行通信,以确保安全的身份验证。受管系统上需要一个安全套接字层(SSL)或传输层安全(TLS)证书来建立加密频道。

系统中可以通过两种方法管理 SSL/TLS 证书:

  • 自签名证书使用的基础架构更少,但更难部署到客户端并难以安全管理。
  • 授权签名的证书在设置后更易于向客户部署,但可能需要更大的初始投资。

在使用授权签名的证书时,需要在客户端系统上配置可信证书颁发机构。然后,该授权可用于签署所有托管系统的 CIMOM 证书。证书也可以是证书链的一部分,因此用于签署受管系统证书的证书可能由另一个更高权威机构(如 Verisign、CAcert 和 RSA 及其他)签名。

文件系统中的默认证书和信任存储位置列在 表 22.2 “证书和受信任存储位置” 中。

表 22.2. 证书和受信任存储位置

配置选项位置描述

sslCertificateFilePath

/etc/Pegasus/server.pem

CIMOM 的公共证书。

sslKeyFilePath

/etc/Pegasus/file.pem

仅对 CIMOM 已知的私钥.

sslTrustStore

/etc/Pegasus/client.pem

提供可信证书颁发机构列表的文件或目录。

重要

如果您修改了 表 22.2 “证书和受信任存储位置” 中提到的任何文件,请重启 tog-pegasus 服务以确保它识别新证书。要重启该服务,以 root 用户身份在 shell 提示符后输入以下内容:

systemctl restart tog-pegasus.service

有关如何在 Red Hat Enterprise Linux 7 中管理系统服务的详情请参考 第 10 章 使用 systemd 管理服务

22.3.1. 管理自签名证书

自签名证书使用自己的私钥签署自身,并且它没有连接到任何信任链。在托管的系统上,如果在首次启动 tog-pegasus 服务之前管理员未提供证书,则将使用系统的主主机名作为证书主题自动生成一组自签名证书。

重要

自动生成的自签名证书默认为 10 年有效,但它们没有自动续订功能。对这些证书的任何修改都需要根据 OpenSSLMozilla NSS 文档中关于该主题的指南来手动创建新的证书。

要将客户端系统配置为信任自签名证书,请完成以下步骤:

  1. /etc/Pegasus/server.pem 证书从受管系统复制到客户端系统上的 /etc/pki/ca-trust/source/anchors/ 目录。要做到这一点,以 root 根用户身份在 shell 提示符后输入以下内容:

    scp root@hostname:/etc/Pegasus/server.pem /etc/pki/ca-trust/source/anchors/pegasus-hostname.pem

    使用受管系统的主机名替换 hostname。请注意,只有在 sshd 服务在受管系统上运行并且配置为允许 root 用户通过 SSH 协议登录系统时,此命令才起作用。有关如何安装和配置 sshd 服务并使用 scp 命令通过 SSH 协议传输文件的更多信息,请参阅 第 12 章 OpenSSH

  2. 通过将校验和与原始文件的检查总和进行比较,验证客户端系统上证书的完整性。要在受管系统中计算 /etc/Pegasus/server.pem 文件的检查总和,请在该系统上以 root 用户身份运行以下命令:

    sha1sum /etc/Pegasus/server.pem

    要在客户端系统中计算 /etc/pki/ca-trust/source/anchors/pegasus-hostname.pem 文件的检查总和,请在此系统中运行以下命令:

    sha1sum /etc/pki/ca-trust/source/anchors/pegasus-hostname.pem

    使用受管系统的主机名替换 hostname

  3. root 用户身份运行以下命令来更新客户端系统中的信任存储:

    update-ca-trust extract

22.3.2. 使用身份管理管理授权机构签名证书(推荐)

红帽企业 Linux 的身份管理功能提供了一个域控制器,简化了加入域的系统中 SSL 证书的管理。除了其他功能外,身份管理服务器提供嵌入式证书颁发机构。有关如何将客户端和受管系统加入到域中的信息,请参阅红帽企业 Linux 7 域身份、身份验证和政策指南或 FreeIPA 文档。

必须将受管系统注册到身份管理;对于客户端系统,注册是可选的。

受管系统中需要执行以下步骤:

  1. 安装 ipa-client 软件包并将系统注册到身份管理,如 红帽企业 Linux 7 Linux 域身份、身份验证和策略指南 中所述。
  2. root 用户身份输入以下命令,将身份管理签名证书复制到可信存储中:

    cp /etc/ipa/ca.crt /etc/pki/ca-trust/source/anchors/ipa.crt
  3. root 用户身份运行以下命令来更新信任存储:

    update-ca-trust extract
  4. 以特权域用户身份运行以下命令,将 Pegasus 注册到 Identity Management 域中的服务:

    ipa service-add CIMOM/hostname

    使用受管系统的主机名替换 hostname

    此命令可以从安装了 ipa-admintools 软件包的 Identity Management 域中的任何系统运行。它在身份管理中创建服务条目,可用于生成签名 SSL 证书。

  5. 备份位于 /etc/Pegasus/ 目录中的 PEM 文件(推荐)。
  6. root 用户身份运行以下命令来检索签名的证书:

    ipa-getcert request -f /etc/Pegasus/server.pem -k /etc/Pegasus/file.pem -N CN=hostname -K CIMOM/hostname

    使用受管系统的主机名替换 hostname

    证书和密钥文件现在保存在正确的位置。ipa-client-install 脚本在受管系统中安装的 certmonger 守护进程 可确保证书保持最新,并根据需要续订。

    如需更多信息,请参阅 Red Hat Enterprise Linux 7 Linux 域身份、身份验证和策略指南

要注册客户端系统并更新信任存储,请按照以下步骤操作。

  1. 安装 ipa-client 软件包并将系统注册到身份管理,如 红帽企业 Linux 7 Linux 域身份、身份验证和策略指南 中所述。
  2. root 用户身份输入以下命令,将身份管理签名证书复制到可信存储中:

    cp /etc/ipa/ca.crt /etc/pki/ca-trust/source/anchors/ipa.crt
  3. root 用户身份运行以下命令来更新信任存储:

    update-ca-trust extract

如果客户端系统不是在身份管理中注册,请完成以下步骤以更新信任存储。

  1. /etc/ipa/ca.crt 文件安全地从加入到同一身份管理域的任何其他系统复制到可信存储 /etc/pki/ca-trust/source/anchors/ 目录
  2. root 用户身份运行以下命令来更新信任存储:

    update-ca-trust extract

22.3.3. 手动管理授权签名证书

使用身份管理之外的其他机制管理授权签名证书需要更多手动配置。

需要确保所有客户端信任将要签署受管系统证书的颁发机构证书:

  • 如果证书认证机构在默认情况下受信任,则不需要执行任何特定步骤来完成此操作。
  • 如果默认情况下证书认证机构不被信任,则必须在客户端和受管系统上导入证书。

    1. root 用户身份输入以下命令将证书复制到可信存储中:

      cp /path/to/ca.crt /etc/pki/ca-trust/source/anchors/ca.crt
    2. root 用户身份运行以下命令来更新信任存储:

      update-ca-trust extract

在受管系统中,完成以下步骤:

  1. 创建新的 SSL 配置文件 /etc/Pegasus/ssl.cnf,以存储有关证书的信息。这个文件的内容必须与以下示例类似:

    [ req ]
    distinguished_name   = req_distinguished_name
    prompt         = no
    [ req_distinguished_name ]
    C           = US
    ST           = Massachusetts
    L           = Westford
    O           = Fedora
    OU           = Fedora OpenLMI
    CN           = hostname

    使用受管系统的完全限定域名替换 hostname

  2. 使用以下命令,以 root 用户身份在管理系统中生成私钥:

    openssl genrsa -out /etc/Pegasus/file.pem 1024
  3. root 用户身份运行这个命令来生成证书签名请求(CSR):

    openssl req -config /etc/Pegasus/ssl.cnf -new -key /etc/Pegasus/file.pem -out /etc/Pegasus/server.csr
  4. /etc/Pegasus/server.csr 文件发送到认证机构进行签名。提交文件的详细步骤取决于特定的证书颁发机构。
  5. 从证书颁发机构收到签名的证书时,将其保存为 /etc/Pegasus/server.pem
  6. 将可信颁发机构的证书复制到 Pegasus 信任存储中,以确保 Pegasus 能够通过以 root 用户身份运行来信任其自身证书:

    cp /path/to/ca.crt /etc/Pegasus/client.pem

完成所有上述步骤后,信任签名授权的客户端能够与受管服务器的 CIMOM 成功通信。

重要

与 Identity Management 解决方案不同的是,如果证书过期且需要续订,则必须再次执行所有上述手动步骤。建议在证书过期前续订证书。