TKG 扩展要求使用 TLS 证书。可以通过安装 cert-manager 满足此必备条件,也可以使用自己的自签名证书。此外,还支持 CA 颁发的证书。

关于对 TKG 扩展使用自己的 TLS 证书

安装 cert-manager 记录在每个 TKG 扩展的部署过程中。或者,也可以使用自己的 TLS 证书。
注: 此任务假设您使用的是安装了 OpenSSL 的 Linux 主机。

生成证书颁发机构证书

在生产环境中,应该从 CA 获取证书。在开发或测试环境中,您可以生成自己的自签名证书。要生成 CA 证书,请按照以下说明进行操作。
  1. 生成 CA 证书私钥。
    openssl genrsa -out ca.key 4096
  2. 生成 CA 证书。
    使用以下命令作为模板。根据您的环境更新 -subj 选项中的值。如果使用 FQDN 连接 TKG 扩展主机,则必须将此 FQDN 指定为公用名称 (CN) 属性。
    openssl req -x509 -new -nodes -sha512 -days 3650 \
     -subj "/C=US/ST=PA/L=PA/O=example/OU=Personal/CN=tkg-extensions.system.tanzu" \
     -key ca.key \
     -out ca.crt
    

生成服务器证书

证书通常包含 .crt 文件和 .key 文件,例如 tls.crttls.key
  1. 生成私钥。
    openssl genrsa -out tls.key 4096
  2. 生成证书签名请求 (CSR)。
    使用以下命令作为模板。根据您的环境更新 -subj 选项中的值。如果使用 FQDN 连接 TKG 扩展主机,则必须将此 FQDN 指定为公用名称 (CN) 属性,并在密钥和 CSR 文件名中使用该 FQDN。
    openssl req -sha512 -new \
        -subj "/C=US/ST=PA/L=PA/O=example/OU=Personal/CN=tkg-extensions.system.tanzu" \
        -key tls.key \
        -out tls.csr
    
  3. 生成 x509 v3 扩展文件。

    使用以下命令作为模板。创建此文件,以便可以为 TKG 扩展主机生成符合主体备用名称 (SAN) 和 x509 v3 扩展要求的证书。

    cat > v3.ext <<-EOF
    authorityKeyIdentifier=keyid,issuer
    basicConstraints=CA:FALSE
    keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
    extendedKeyUsage = serverAuth
    subjectAltName = @alt_names
    
    [alt_names]
    DNS.1=tkg-extensions.system.tanzu
    EOF
    
  4. 使用 x509 v3 扩展文件为 TKG 扩展主机生成证书
    openssl x509 -req -sha512 -days 3650 \
    -extfile v3.ext \
    -CA ca.crt -CAkey ca.key -CAcreateserial \
    -in tls.csr \
    -out tls.crt
    
  5. 使用以下格式将文件 ca.crttls.crttls.key 的内容复制到 TKG-EXTENSION-data-values.yaml 文件。
    ingress:
      tlsCertificate:
        tls.crt: |
            -----BEGIN ...
    
  6. 继续按照文档说明部署支持的 TKG 扩展。