3.2.16. 使用通配符证书
不包含证书的 TLS 路由改为使用路由器的默认证书。在大多数情况下,此证书应由可信证书颁发机构提供,但为了方便起见,您可以使用 OpenShift Container Platform CA 创建证书。例如:
$ CA=/etc/origin/master $ oc adm ca create-server-cert --signer-cert=$CA/ca.crt \ --signer-key=$CA/ca.key --signer-serial=$CA/ca.serial.txt \ --hostnames='*.cloudapps.example.com' \ --cert=cloudapps.crt --key=cloudapps.key
注意
oc adm ca create-server-cert
命令会生成一个有效期为两年的证书。这可以通过 --expire-days
选项进行修改,但出于安全原因,建议不要超过这个值。
仅从 Ansible 主机清单文件中列出的第一个 master 运行 oc adm
命令,默认为 /etc/ansible/hosts。
路由器预期证书和密钥在单个文件中采用 PEM 格式:
$ cat cloudapps.crt cloudapps.key $CA/ca.crt > cloudapps.router.pem
在这里您可以使用 --default-cert
标志:
$ oc adm router --default-cert=cloudapps.router.pem --service-account=router
注意
浏览器只考虑一个级别深度的子域有效通配符。因此在此示例中,证书对 a.cloudapps.example.com 有效,但不适用于 a.b.cloudapps.example.com。