现在可以创建以下证书资源,该资源指定所需的证书。为了使用Issuer获取证书,我们必须在与Issuer相同的命名空间中创建Certif icate资源,因为Issuer是命名空间资源,如本例所示。如果我们想要跨多个命名空间重用签名密钥对,那么就可以使用一个集群ClusterIssuer。
首先通过以下命令为域名myexample.com创建证书,其中可以通过引用ClusterIssuer类型的颁发者Issuer;默认情况下使用只适用于命名空间的Issuer:
kubectl apply -f - << EOF
apiVersion: certmanager.k8s.io/v1alpha1
kind: Certificate
metadata:
name: myexample-certificate
namespace: default
spec:
secretName: istio-myexample-customingressgateway-certs
issuerRef:
name: ca-issuer
kind: Issuer
commonName: myexample.com
organization:
- MyExample CA
dnsNames:
- myexample.com
- www.myexample.com
EOF
记下secretName,因为接下来的步骤会需要引用它。
创建证书资源后,cert-manager将尝试使用颁发者ca-issuer获取证书,如果成功,证书将存储在与证书资源相同的命名空间(default)中的Secret资源istio-myexample-customingressgateway-certs里。