2.7. 在卫星 Web UI 中将正确的组织和位置分配给胶囊服务器
安装胶囊服务器软件包后,如果有多个组织或位置,您必须将正确的组织和位置分配给胶囊,以便在卫星 Web UI 中可见胶囊。
流程
- 登录卫星 Web UI。
- 从屏幕左上角的 Organization 列表中,选择 Any Organization。
- 从屏幕左上角的 Location 列表中,选择 Any Location。
- 进入 Hosts > All Hosts 并选择 Capsule Server。
- 在 Select Actions 列表中,选择 Assign Organization。
- 从 Organization 列表中,选择要分配此胶囊的组织。
- 单击 Mismatch 上的 Fix Organization。
- 点 Submit。
- 选择胶囊服务器。在 Select Actions 列表中,选择 Assign Location。
- 从 Location 列表中,选择要分配此胶囊的位置。
- 单击 Mismatch 上的 Fix Location。
- 点 Submit。
- 导航到 Administer > Organizations,再点击已分配给胶囊的组织。
- 单击 Capsules 选项卡,并确保在 Selected items 列表下列出胶囊服务器,然后单击 Submit。
- 导航到 Administer > Locations,再点击已分配给胶囊的位置。
- 单击 Capsules 选项卡,并确保在 Selected items 列表下列出胶囊服务器,然后单击 Submit。
验证
另外,您可以验证胶囊服务器是否在卫星 Web UI 中正确列出。
- 从 Organization 列表中选择机构。
- 从 Location 列表中选择位置。
- 进入 Hosts > All Hosts。
- 导航到 Infrastructure > Capsules。
红帽卫星使用 SSL 证书实现卫星服务器、外部胶囊服务器和所有主机之间的加密通信。根据您的机构的要求,您必须为胶囊服务器配置默认或自定义证书。
- 如果使用默认 SSL 证书,还必须使用不同的默认 SSL 证书配置每个外部胶囊服务器。更多信息请参阅 第 2.7.1 节 “使用默认 SSL 证书配置胶囊服务器”。
- 如果使用自定义 SSL 证书,还必须使用不同的自定义 SSL 证书配置每个外部胶囊服务器。更多信息请参阅 第 2.7.2 节 “使用自定义 SSL 证书配置胶囊服务器”。
2.7.1. 使用默认 SSL 证书配置胶囊服务器
使用本节,为胶囊服务器配置由卫星服务器默认证书颁发机构(CA)签名的 SSL 证书。
先决条件
- 胶囊服务器注册到卫星服务器。如需更多信息,请参阅 注册到卫星服务器。
- 已安装胶囊服务器软件包。如需更多信息,请参阅安装胶囊服务器软件包。
流程
在卫星服务器上,若要为您的胶囊服务器存储所有源证书文件,创建一个只能被 root 用户访问的目录,如
/
:root
/capsule_cert# mkdir /root/capsule_cert
在 Satellite 服务器上,为您的 Capsule 服务器生成
/root/capsule_cert/prompt.example.com-certs.tar
证书存档:# capsule-certs-generate \ --foreman-proxy-fqdn capsule.example.com \ --certs-tar /root/capsule_cert/capsule.example.com-certs.tar
保留
satellite-installer
命令的副本,供capsule-certs-generate
命令返回,以将证书部署到您的胶囊服务器。capsule-certs-generate
输出示例output omitted satellite-installer --scenario capsule \ --certs-tar-file "/root/capsule.example.com-certs.tar" \ --foreman-proxy-register-in-foreman "true" \ --foreman-proxy-foreman-base-url "https://satellite.example.com" \ --foreman-proxy-trusted-hosts "satellite.example.com" \ --foreman-proxy-trusted-hosts "capsule.example.com" \ --foreman-proxy-oauth-consumer-key "s97QxvUAgFNAQZNGg4F9zLq2biDsxM7f" \ --foreman-proxy-oauth-consumer-secret "6bpzAdMpRAfYaVZtaepYetomgBVQ6ehY" \ --puppet-server-foreman-url "https://satellite.example.com"
在卫星服务器上,将证书归档文件复制到您的胶囊服务器中:
# scp /root/capsule_cert/capsule.example.com-certs.tar \ root@capsule.example.com:/root/capsule.example.com-certs.tar
在胶囊服务器上,要部署证书,请输入
capsule-certs-generate
命令返回的satellite-installer
命令。如果尚未打开到 Satellite 的网络连接或端口,您可以将
--foreman-proxy-register-in-foreman
选项设置为false
,以防止胶囊尝试连接到 Satellite 并报告错误。正确配置网络和防火墙时,通过此选项设置来再次运行安装程序。重要部署证书后,请勿删除证书存档文件。例如,在升级胶囊服务器时,需要它。
2.7.2. 使用自定义 SSL 证书配置胶囊服务器
如果将卫星服务器配置为使用自定义 SSL 证书,还必须使用不同的自定义 SSL 证书配置每个外部胶囊服务器。
要使用自定义证书配置您的胶囊服务器,请在每个胶囊服务器上完成以下步骤:
2.7.2.1. 为胶囊服务器创建自定义 SSL 证书
在卫星服务器上,为您的胶囊服务器创建自定义证书。如果您已经有适用于胶囊服务器的自定义 SSL 证书,请跳过这个过程。
使用自定义证书配置胶囊服务器时,请注意以下注意事项:
- 您必须将 Privacy-Enhanced Mail (PEM)编码用于 SSL 证书。
- 您不能对卫星服务器和胶囊服务器使用相同的证书。
- 相同的证书颁发机构必须签署卫星服务器和胶囊服务器的证书。
流程
要存储所有源证书文件,请创建一个只可由
root
用户访问的目录。# mkdir /root/capsule_cert
创建为证书签名请求(CSR)签名的私钥。
请注意,私钥必须未加密。如果您使用受密码保护的私钥,请删除私钥密码。
如果您已经拥有此胶囊服务器的私钥,请跳过这一步。
# openssl genrsa -out
/root/capsule_cert/capsule_cert_key.pem
4096为证书签名请求(CSR)创建
/root/capsule_cert/openssl.cnf
配置文件,并包含以下内容:[ req ] req_extensions = v3_req distinguished_name = req_distinguished_name x509_extensions = usr_cert prompt = no [ req_distinguished_name ] 1 C = Country Name (2 letter code) ST = State or Province Name (full name) L = Locality Name (eg, city) O = Organization Name (eg, company) OU = The division of your organization handling the certificate CN = capsule.example.com 2 [ 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 = capsule.example.com 3
生成证书签名请求(CSR):
# openssl req -new \ -key /root/capsule_cert/capsule_cert_key.pem \ 1 -config /root/capsule_cert/openssl.cnf \ 2 -out /root/capsule_cert/capsule_cert_csr.pem 3
将证书签名请求发送到证书颁发机构。相同的证书颁发机构必须签署卫星服务器和胶囊服务器的证书。
提交请求时,指定证书的 lifespan。发送证书请求的方法会有所不同,因此请查阅证书颁发机构来获得首选方法。为响应请求,预计可在单独的文件中接收证书颁发机构捆绑包和签名证书。
2.7.2.2. 将自定义 SSL 证书部署到胶囊服务器
使用此流程为胶囊服务器配置由证书颁发机构签名的自定义 SSL 证书。satellite-installer
命令( capsule-certs-generate
命令返回)是每个胶囊服务器是唯一的。不要在多个胶囊服务器上使用同样的命令。
先决条件
- 卫星服务器配置了自定义证书。有关更多信息,请参阅从连接网络 安装卫星服务器 中的使用自定义 SSL 证书 配置卫星服务器。
- 胶囊服务器注册到卫星服务器。如需更多信息,请参阅 注册到卫星服务器。
- 已安装胶囊服务器软件包。如需更多信息,请参阅安装胶囊服务器软件包。
流程
在卫星服务器上,验证自定义 SSL 证书输入文件:
# katello-certs-check \ -t capsule -c /root/capsule_cert/capsule_cert.pem \ 1 -k /root/capsule_cert/capsule_cert_key.pem \ 2 -b /root/capsule_cert/ca_cert_bundle.pem 3
如果您在
/root/capsule_cert/openssl.cnf
配置文件中为证书的通用名称CN =
设置了通配符值*
,您必须将-t capsule
选项添加到katello-certs-check
命令中。如果命令成功,它会返回两个
capsule-certs-generate
命令,其中一个命令必须用来为您的胶囊服务器生成证书存档文件。要在 new-capsule.example.com 中使用证书,请运行以下命令:
capsule-certs-generate --foreman-proxy-fqdn "$CAPSULE" \ --certs-tar "~/$CAPSULE-certs.tar" \ --server-cert "/root/capsule_cert/capsule_cert.pem" \ --server-key "/root/capsule_cert/capsule_cert_key.pem" \ --server-ca-cert "/root/capsule_cert/ca_cert_bundle.pem" \
要使用 existing-capsule.example.com 内的证书,请运行以下命令:
capsule-certs-generate --foreman-proxy-fqdn "$CAPSULE" \ --certs-tar "~/$CAPSULE-certs.tar" \ --server-cert "/root/capsule_cert/capsule_cert.pem" \ --server-key "/root/capsule_cert/capsule_cert_key.pem" \ --server-ca-cert "/root/capsule_cert/ca_cert_bundle.pem" \ --certs-update-server
根据您的要求,在卫星服务器中输入为新的或现有
胶囊生成证书的 Capsule-certs-generate
命令。在某些情况下,katello-certs-check
命令的输出可能并不准确。因此,您必须遵循上述步骤,而不是命令输出。在这个命令中,将
$CAPSULE
更改为您的胶囊服务器的 FQDN。保留
satellite-installer
命令的副本,供capsule-certs-generate
命令返回,以将证书部署到您的胶囊服务器。capsule-certs-generate
输出示例output omitted satellite-installer --scenario capsule \ --certs-tar-file "/root/capsule.example.com-certs.tar" \ --foreman-proxy-register-in-foreman "true" \ --foreman-proxy-foreman-base-url "https://satellite.example.com" \ --foreman-proxy-trusted-hosts "satellite.example.com" \ --foreman-proxy-trusted-hosts "capsule.example.com" \ --foreman-proxy-oauth-consumer-key "s97QxvUAgFNAQZNGg4F9zLq2biDsxM7f" \ --foreman-proxy-oauth-consumer-secret "6bpzAdMpRAfYaVZtaepYetomgBVQ6ehY" \ --puppet-server-foreman-url "https://satellite.example.com"
在卫星服务器上,将证书归档文件复制到您的胶囊服务器中:
# scp /root/capsule_cert/capsule.example.com-certs.tar \ root@capsule.example.com:/root/capsule.example.com-certs.tar
在胶囊服务器上,要部署证书,请输入
capsule-certs-generate
命令返回的satellite-installer
命令。如果尚未打开到 Satellite 的网络连接或端口,您可以将
--foreman-proxy-register-in-foreman
选项设置为false
,以防止胶囊尝试连接到 Satellite 并报告错误。正确配置网络和防火墙时,通过此选项设置来再次运行安装程序。重要部署证书后,请勿删除证书存档文件。例如,在升级胶囊服务器时,需要它。
2.7.2.3. 将自定义 SSL 证书部署到主机
将胶囊服务器配置为使用自定义 SSL 证书后,您还必须在注册到此胶囊服务器的每个主机上安装 katello-ca-consumer
软件包。
流程
在每个主机上,安装
katello-ca-consumer
软件包:# yum localinstall \ http://capsule.example.com/pub/katello-ca-consumer-latest.noarch.rpm