Utilizzo dei tuoi certificati TLS

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:

  1. Copia i certificati nella directory corrente.

  2. Utilizza il comando seguente per creare un secret che archivi i certificati, dove privkey.pem contiene la chiave privata del certificato e fullchain.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:

  1. Apri le specifiche del gateway condiviso per la modifica:

    kubectl edit gateway gke-system-gateway --namespace knative-serving
  2. 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
    
  3. Salva le modifiche.

Dopo la modifica, potrai utilizzare il protocollo HTTPS per accedere ai servizi di cui hai eseguito il deployment.