Cette page explique comment configurer Cloud Run pour Anthos pour utiliser votre propre certificat SSL/TLS, lorsque vous ne souhaitez pas utiliser la fonctionnalité de certificats TLS gérés.
La passerelle d'entrée Istio peut accepter le protocole TLS fourni par votre certificat, après avoir stocké celui-ci dans un secret Kubernetes et l'avoir spécifié dans la spécification de passerelle d'entrée Istio.
Avant de commencer
Dans ces instructions, nous partons du principe que vous disposez déjà de vos propres certificats TLS.
Stocker un certificat ou une clé privée TLS dans un secret Kubernetes
Pour stocker des certificats dans un secret, procédez comme suit :
Copiez les certificats dans votre répertoire actuel.
Exécutez la commande suivante pour créer un secret qui stocke les certificats, où
privkey.pem
contient votre clé privée de certificat etfullchain.pem
contient le certificat public :kubectl create --namespace gke-system secret tls SECRET_NAME \ --key privkey.pem \ --cert fullchain.pem
Spécifier votre certificat TLS pour la passerelle d'entrée Istio
Modifiez la spécification de la passerelle d'entrée Istio pour utiliser le secret Kubernetes contenant votre certificat TLS :
Ouvrez les spécifications de la passerelle partagée pour les modifier :
kubectl edit gateway gke-system-gateway --namespace knative-serving
Spécifiez votre certificat TLS à l'aide du secret que vous avez créé précédemment, en ajoutant la section suivante à la spécification de votre passerelle :
- hosts: - "*" port: name: https number: 443 protocol: HTTPS tls: mode: SIMPLE credentialName: SECRET_NAME
La spécification de votre passerelle doit se présenter comme suit :
apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: # ... skipped ... spec: selector: istio: ingressgateway servers: - hosts: - "*" port: name: http number: 80 protocol: HTTP - hosts: - "*" port: name: https number: 443 protocol: HTTPS tls: mode: SIMPLE credentialName: SECRET_NAME
Si vous ajoutez plusieurs certificats TLS pour deux services différents dans des espaces de noms différents, la spécification de votre passerelle peut ressembler à ceci :
apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: # ... skipped ... spec: selector: istio: ingressgateway servers: - hosts: - "*" port: name: http number: 80 protocol: HTTP - port: number: 443 name: https-SERVICE1_NAME protocol: HTTPS tls: mode: SIMPLE credentialName: SECRET1_NAME hosts: - SERVICE1_NAME.NAMESPACE1.example.com - port: number: 443 name: https-SERVICE2_NAME protocol: HTTPS tls: mode: SIMPLE credentialName: SECRET2_NAME hosts: - SERVICE2_NAME.NAMESPACE2.example.com
Enregistrez les modifications.
Après cette modification, vous pouvez utiliser le protocole HTTPS pour accéder à vos services déployés.