Questa pagina descrive come configurare Cloud Run for Anthos per l'utilizzo di un certificato SSL/TLS, per i casi in cui non si vuole utilizzare la funzionalità dei certificati TLS gestiti.
Istio Ingress Gateway può supportare il protocollo TLS fornito dal certificato dopo l'archiviazione del certificato in un secret Kubernetes e specificarlo nelle specifiche di Istio Ingress Gateway.
Prima di iniziare
Queste istruzioni presuppongono che tu disponga già di certificati TLS.
Archiviazione del certificato TLS/della chiave privata in un secret Kubernetes
Per archiviare i certificati in un secret:
Copia i certificati nella directory corrente.
Utilizza il comando seguente per creare un secret che archivi i certificati, dove
privkey.pem
contiene la chiave privata del certificato efullchain.pem
contiene il certificato pubblico:kubectl create --namespace gke-system secret tls SECRET_NAME \ --key privkey.pem \ --cert fullchain.pem
Specifica del certificato TLS in Istio Ingress Gateway
Modifica le specifiche del gateway Ingress di Istio per utilizzare il secret di Kubernetes contenente il certificato TLS:
Apri le specifiche del gateway condiviso per la modifica:
kubectl edit gateway gke-system-gateway --namespace knative-serving
Specifica il certificato TLS utilizzando il secret che hai creato in precedenza, aggiungendo la seguente sezione alle specifiche del gateway:
- hosts: - "*" port: name: https number: 443 protocol: HTTPS tls: mode: SIMPLE credentialName: SECRET_NAME
Le specifiche del tuo gateway dovrebbero avere il seguente aspetto:
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
Se stai aggiungendo più certificati TLS per due servizi diversi in spazi dei nomi diversi, le specifiche del tuo gateway potrebbero avere il seguente aspetto:
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
Salva le modifiche.
Dopo la modifica, potrai utilizzare il protocollo HTTPS per accedere ai servizi di cui hai eseguito il deployment.