我们在OpenShift上部署了很多服务,每个服务都有一个唯一的路由。
目前我们正在使用OpenSSL创建SSL证书,并在YAML文件中指定。key和。cer。
维护这些证书是困难的,如果我们必须在证书到期后更改证书,我们必须更新所有的YAML文件
是否有一种方法来创建一个秘密,并使用它来代替。cer和key在路由yaml文件?
在OpenShift中有一个名为ingress-operator的操作符,您只需要在此ingress控制pod中指定SSL,而不是所有pod。
1. oc create secret tls <secret_name> --cert=<cert_name_PEM> --key=<cert_key> -n openshift-ingress
2. oc patch ingresscontroller default -n openshift-ingress-operator --type=merge --patch='{"spec": { "defaultCertificate": { "name": “<secret_name>” }}}'
您可以使用cert-manager
证书管理器将取消证书,并在证书到期时自动更新密钥。
您也可以使用CA创建自签名证书。
apiVersion: v1
kind: Namespace
metadata:
name: sandbox
---
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: selfsigned-issuer
spec:
selfSigned: {}
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: my-selfsigned-ca
namespace: sandbox
spec:
isCA: true
commonName: my-selfsigned-ca
secretName: root-secret
privateKey:
algorithm: ECDSA
size: 256
issuerRef:
name: selfsigned-issuer
kind: ClusterIssuer
group: cert-manager.io
---
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: my-ca-issuer
namespace: sandbox
spec:
ca:
secretName: root-secret
Ref: https://cert-manager.io/docs/configuration/selfsigned/