3.13. 使用自定义 SSL 证书配置卫星服务器
默认情况下,红帽卫星使用自签名 SSL 证书在卫星服务器、外部胶囊服务器和所有主机之间启用加密通信。如果无法使用 Satellite 自签名证书,您可以将 Satellite 服务器配置为使用由外部证书颁发机构(CA)签名的 SSL 证书。
当使用自定义 SSL 证书配置 Red Hat Satellite 时,您必须满足以下要求:
- 您必须对 SSL 证书使用隐私增强型邮件(PEM)编码。
- 您不能将相同的 SSL 证书用于 Satellite 服务器和 Capsule 服务器。
- 同一 CA 必须为 Satellite 服务器和 Capsule 服务器签名证书。
- SSL 证书也不能是 CA 证书。
- SSL 证书必须包含与通用名称(CN)匹配的主题 alt name (SAN)条目。
- 在使用密钥用法扩展时,必须允许 SSL 证书。
- SSL 证书不能有短名称作为 CN。
- 您不能为私钥设置密码短语。
要使用自定义证书配置 Satellite 服务器,请完成以下步骤:
- 第 3.13.1 节 “为 Satellite 服务器创建自定义 SSL 证书”
- 第 3.13.2 节 “将自定义 SSL 证书部署到卫星服务器”
- 第 3.13.3 节 “将自定义 SSL 证书部署到主机”
- 如果您的外部胶囊服务器注册到 Satellite 服务器,请使用自定义 SSL 证书进行配置。有关更多信息,请参阅在安装胶囊服务器中使用自定义 SSL 证书 配置胶囊服务器。
3.13.1. 为 Satellite 服务器创建自定义 SSL 证书
使用这个流程为 Satellite 服务器创建自定义 SSL 证书。如果您已有 Satellite 服务器的自定义 SSL 证书,请跳过此步骤。
流程
要存储所有源证书文件,请创建一个只能被
root
用户访问的目录:# mkdir /root/satellite_cert
创建为证书签名请求(CSR)签名的私钥。
请注意,私钥必须未加密。如果您使用密码保护的私钥,请删除私钥密码。
如果您已有此 Satellite 服务器的私钥,请跳过这一步。
# openssl genrsa -out
/root/satellite_cert/satellite_cert_key.pem
4096为 CSR 创建
/root/satellite_cert/openssl.cnf
配置文件并包含以下内容:[ req ] req_extensions = v3_req distinguished_name = req_distinguished_name x509_extensions = usr_cert prompt = no [ req_distinguished_name ] CN = satellite.example.com [ v3_req ] basicConstraints = CA:FALSE keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection subjectAltName = @alt_names [ usr_cert ] basicConstraints=CA:FALSE nsCertType = client, server, email keyUsage = nonRepudiation, digitalSignature, keyEncipherment extendedKeyUsage = serverAuth, clientAuth, codeSigning, emailProtection nsComment = "OpenSSL Generated Certificate" subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer [ alt_names ] DNS.1 = satellite.example.com
生成 CSR:
# openssl req -new \ -key /root/satellite_cert/satellite_cert_key.pem \ 1 -config /root/satellite_cert/openssl.cnf \ 2 -out /root/satellite_cert/satellite_cert_csr.pem 3
将证书签名请求发送到证书颁发机构(CA)。同一 CA 必须为 Satellite 服务器和 Capsule 服务器签名证书。
提交请求时,指定证书的寿命。发送证书请求的方法会有所不同,因此请查阅 CA 查看首选方法。为了响应请求,您可以在单独的文件中接收 CA 捆绑包和签名证书。
3.13.2. 将自定义 SSL 证书部署到卫星服务器
使用这个步骤将 Satellite 服务器配置为使用由证书颁发机构签名的自定义 SSL 证书。katello-certs-check
命令验证输入证书文件,并将自定义 SSL 证书部署到卫星服务器所需的命令返回。
不要将 SSL 证书或 .tar 捆绑包存储在 /tmp
或 /var/tmp
目录中。操作系统定期从这些目录中删除文件。因此,satellite-installer
在启用功能或升级 Satellite 服务器时无法执行。
流程
验证自定义 SSL 证书输入文件。请注意,对于
katello-certs-check
命令可以正常工作,证书中的 Common Name(CN)必须与卫星服务器的 FQDN 匹配。# katello-certs-check \ -c /root/satellite_cert/satellite_cert.pem \ 1 -k /root/satellite_cert/satellite_cert_key.pem \ 2 -b /root/satellite_cert/ca_cert_bundle.pem 3
如果命令成功,它将返回两个
satellite-installer
命令,其中一个必须使用它来将证书部署到卫星服务器。katello-certs-check
输出示例Validation succeeded. To install the Red Hat Satellite Server with the custom certificates, run: satellite-installer --scenario satellite \ --certs-server-cert "/root/satellite_cert/satellite_cert.pem" \ --certs-server-key "/root/satellite_cert/satellite_cert_key.pem" \ --certs-server-ca-cert "/root/satellite_cert/ca_cert_bundle.pem" To update the certificates on a currently running Red Hat Satellite installation, run: satellite-installer --scenario satellite \ --certs-server-cert "/root/satellite_cert/satellite_cert.pem" \ --certs-server-key "/root/satellite_cert/satellite_cert_key.pem" \ --certs-server-ca-cert "/root/satellite_cert/ca_cert_bundle.pem" \ --certs-update-server --certs-update-server-ca
请注意,不得访问或修改
/root/ssl-build
。在
katello-certs-check
命令的输出中,根据您的要求,输入satellite-installer
命令,该命令使用自定义 SSL 证书在当前正在运行的 Satellite 上安装新 Satellite 或更新证书。如果您不确定要运行的命令,您可以通过检查文件
/etc/foreman-installer/scenarios.d/.installed
来验证是否安装了 Satellite。如果文件存在,请运行更新证书的第二个satellite-installer
命令。重要在部署证书后,Satellite-installer
需要证书存档文件。不要修改或删除它。例如,升级卫星服务器时需要它。-
在可访问卫星服务器的计算机中,导航到以下 URL
:
- 在浏览器中,查看证书详情以验证部署的证书。
3.13.3. 将自定义 SSL 证书部署到主机
将卫星服务器配置为使用自定义 SSL 证书后,您还必须在注册到此卫星服务器的每个主机上安装 katello-ca-consumer
软件包。
流程
在每个主机上安装
katello-ca-consumer
软件包:# dnf install http://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm