4.3. 使用自定义 SSL 证书配置胶囊服务器以在没有 Puppet 的情况下进行负载平衡
下面的部分论述了如何配置在没有 Puppet 的情况下使用自定义 SSL 证书进行负载平衡的胶囊服务器。
4.3.1. 为胶囊服务器创建自定义 SSL 证书 复制链接链接已复制到粘贴板!
此流程概述了如何为证书签名请求创建配置文件,并包含负载均衡器和胶囊服务器,作为主题备用名称(SAN)。在您要为负载均衡配置的每个胶囊服务器上完成这个步骤。
流程
在 Capsule Server 上,创建包含所有源证书文件的目录,仅可供
root用户访问:# mkdir /root/capsule_cert # cd /root/capsule_cert创建为证书签名请求(CSR)签名的私钥。
请注意,私钥必须未加密的。如果您使用受密码保护的私钥,请删除私钥密码。
如果您已拥有此胶囊服务器的私钥,请跳过这一步。
# openssl genrsa -out /root/capsule_cert/capsule_cert_key.pem 4096使用以下内容创建证书请求配置文件:
[ req ] default_bits = 4096 distinguished_name = req_distinguished_name req_extensions = req_ext prompt = no [ req_distinguished_name ] countryName=2 Letter Country Code stateOrProvinceName=State or Province Full Name localityName=Locality Name 0.organizationName=Organization Name organizationalUnitName=Capsule Organization Unit Name commonName=capsule.example.com1 emailAddress=Email Address [ req_ext ] #authorityKeyIdentifier=keyid,issuer #basicConstraints=CA:FALSE keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment subjectAltName = @alt_names [alt_names]2 DNS.1 = loadbalancer.example.com DNS.2 = capsule.example.com为 SAN 证书创建证书签名请求(CSR)。
# openssl req -new \ -key /root/capsule_cert/capsule_cert_key.pem \1 -config SAN_config.cfg \2 -out /root/capsule_cert/capsule_cert_csr.pem3 将证书请求发送到证书颁发机构:
提交请求时,指定证书的寿命。发送证书请求的方法各不相同,因此请查阅证书颁发机构以获取首选方法。为了响应请求,预计可以在单独的文件中接收证书颁发机构捆绑包和签名证书。
- 将您从认证机构接收的证书颁发机构和胶囊服务器证书文件复制到卫星服务器上。
在卫星服务器上,验证胶囊服务器证书输入文件:
# katello-certs-check \ -c /root/capsule_cert/capsule_cert.pem \1 -k /root/capsule_cert/capsule_cert_key.pem \2 -b /root/capsule_cert/ca_cert_bundle.pem3 如果将
commonName=设置为通配符值*,您必须将-t Capsule 选项添加到katello-certs-check命令中。保留由
katello-certs-check命令输出的示例capsule-certs-generate命令的副本,用于为这个胶囊服务器创建证书存档文件。
4.3.2. 使用自定义 SSL 证书配置胶囊服务器以在没有 Puppet 的情况下进行负载平衡 复制链接链接已复制到粘贴板!
在您要为负载均衡配置的每个胶囊服务器上完成这个步骤。
流程
将以下选项附加到您从
katello-certs-check命令的输出中获取的capsule-certs-generate命令:--foreman-proxy-cname loadbalancer.example.com在卫星服务器上,输入
capsule-certs-generate命令来生成胶囊证书。例如:# capsule-certs-generate \ --foreman-proxy-fqdn capsule.example.com \ --certs-tar /root/capsule_cert/capsule.tar \ --server-cert /root/capsule_cert/capsule.pem \ --server-key /root/capsule_cert/capsule.pem \ --server-ca-cert /root/capsule_cert/ca_cert_bundle.pem \ --foreman-proxy-cname loadbalancer.example.com保留用于安装 Capsule Server 证书的输出中的 example
satellite-installer命令的副本。将证书存档文件从 Satellite 服务器复制到胶囊服务器:
# scp /root/capsule.example.com-certs.tar \ root@capsule.example.com:capsule.example.com-certs.tar将以下选项附加到
satellite-installer命令中,从capsule-certs-generate命令的输出中获取。将--puppet-ca-server选项设置为指向您输入命令的胶囊服务器。您必须在胶囊服务器上安装 Puppet CA,无论您是否打算使用它。Puppet 在默认的单节点配置中配置。--certs-cname "loadbalancer.example.com" \ --puppet-dns-alt-names "loadbalancer.example.com" \ --puppet-ca-server "capsule.example.com" \ --foreman-proxy-puppetca "true" \ --puppet-server-ca "true" \ --enable-foreman-proxy-plugin-remote-execution-ssh在 Capsule Server 上,输入
satellite-installer命令,例如:# satellite-installer --scenario capsule \ --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 "oauth key" \ --foreman-proxy-oauth-consumer-secret "oauth secret" \ --certs-tar-file "capsule.example.com-certs.tar" \ --puppet-server-foreman-url "https://satellite.example.com" \ --certs-cname "loadbalancer.example.com" \ --puppet-dns-alt-names "loadbalancer.example.com" \ --puppet-ca-server "capsule.example.com" \ --foreman-proxy-puppetca "true" \ --puppet-server-ca "true" \ --enable-foreman-proxy-plugin-remote-execution-ssh