Scadenza del certificato CA mTLS di Ingress

Stai visualizzando la documentazione di Apigee e Apigee hybrid.
Non esiste una documentazione Apigee Edge equivalente per questo argomento.

Sintomo

Un ApigeeIssue con Reason AIS_INGRESS_MTLS_CA_CERT_EXPIREY viene visualizzato quando si visualizzano le risorse nello spazio dei nomi apigee.

Messaggi di errore

Dopo aver eseguito kubectl -n apigee get apigeeissues, viene visualizzato un errore simile al seguente:

NAME                                    SEVERITY   REASON                             DOCUMENTATION                                                                                  AGE
ca-cert-expired-my-org-my-virtualhost   ERROR      AIS_INGRESS_MTLS_CA_CERT_EXPIREY   https://cloud.google.com/apigee/docs/hybrid/troubleshooting/AIS_INGRESS_MTLS_CA_CERT_EXPIREY   5h18m

Cause possibili

Causa Descrizione
Il certificato CA mTLS in entrata scadrà a breve Il certificato CA mTLS in entrata configurato scade entro 14 giorni.
Il certificato CA mTLS in entrata è scaduto Il certificato CA mTLS in entrata configurato è scaduto.

Causa: il certificato CA mTLS in entrata scadrà a breve

Il certificato CA mTLS in entrata archiviato nel secret Kubernetes a cui fa riferimento un ApigeeRouteConfig scade entro i prossimi 14 giorni.

Diagnosi

Esegui questo comando:

kubectl -n apigee describe apigeeissue ISSUE_NAME

Dove ISSUE_NAME è il nome del problema. Ad esempio, ca-cert-expiring-soon-my-org-my-virtualhost.

L'output dovrebbe essere simile al seguente:

Name:         ca-cert-expiring-soon-my-org-my-virtualhost
Namespace:    apigee
Labels:       ais-reason=AIS_INGRESS_MTLS_CA_CERT_EXPIREY
Annotations:  <none>
API Version:  apigee.cloud.google.com/v1alpha1
Kind:         ApigeeIssue
Metadata:
  Creation Timestamp:  2023-06-12T17:03:43Z
  Generation:          1
  Owner References:
    API Version:     apigee.cloud.google.com/v1alpha2
    Kind:            ApigeeOrganization
    Name:            my-org
    UID:             7e83a52c-ce00-4bed-98be-55835ada1817
  Resource Version:  3281563
  UID:               adc775c2-376d-4bf9-9860-500b2b2b8273
Spec:
  Details:        CA certificate in secret "my-org-my-virtualhost" for ApigeeRouteConfig "my-org-my-virtualhost" is expiring in 5.409373245s at 2024-03-11 19:04:12 +0000 UTC
  Documentation:  https://cloud.google.com/apigee/docs/hybrid/troubleshooting/AIS_INGRESS_MTLS_CA_CERT_EXPIREY
  Reason:         AIS_INGRESS_MTLS_CA_CERT_EXPIREY
  Severity:       WARNING
Events:           <none>
Spec:
  Details:        CA certificate in secret "my-org-my-virtualhost" for ApigeeRouteConfig "my-org-my-virtualhost" is expiring in 5.409373245s at 2024-03-11 19:04:12 +0000 UTC

I contenuti di Spec.Details spiegano il nome di ApigeeRouteConfig che si riferisce al secret Kubernetes contenente il certificato CA mTLS in entrata che scadrà a breve.

Risoluzione

  1. Utilizza kubectl describe per visualizzare il nome di ApigeeRouteConfig che ha il certificato CA mTLS in entrata in scadenza a breve:

    kubectl -n apigee describe apigeeissue ISSUE_NAME

    Dove ISSUE_NAME è il nome del problema. Ad esempio, ca-cert-expiring-soon-my-org-my-virtualhost.

    In questo esempio, ApigeeRouteConfig my-org-my-virtualhost fa riferimento al secret my-org-my-virtualhost.

  2. Determina il nome di virtualhost da ApigeeRouteConfig.

    Il nome di ApigeeRouteConfig è nel formato: <Apigee organization>-<virtualhost name>.

    In questo esempio, my-org è l'organizzazione Apigee e il nome dell'host virtuale è my-virtualhost.

  3. Trova l'host virtuale corrispondente in overrides.yaml.

    virtualhosts:
    ...
    - name: my-virtualhost
      selector:
        app: apigee-ingressgateway
      caCertPath: ./certs/ca.pem
      sslCertPath: ./certs/vhost.pem
      sslKeyPath: ./certs/vhost.key
    ...
  4. Aggiorna il certificato CA elencato nel file caCertPath.

  5. Applica la modifica all'host virtuale:

    helm upgrade ENV_GROUP_NAME apigee-virtualhost/ \
      --namespace apigee \
      --set envgroup=ENV_GROUP_NAME \
      -f overrides.yaml

Causa: il certificato CA mTLS in entrata è scaduto

Il certificato CA mTLS in entrata archiviato nel secret Kubernetes a cui fa riferimento un ApigeeRouteConfig è scaduto.

Diagnosi

Esegui questo comando:

kubectl -n apigee describe apigeeissue ISSUE_NAME

Dove ISSUE_NAME è il nome del problema. Ad esempio, ca-cert-expired-my-org-my-virtualhost.

L'output dovrebbe essere simile al seguente:

Name:         ca-cert-expired-my-org-my-virtualhost
Namespace:    apigee
Labels:       ais-reason=AIS_INGRESS_MTLS_CA_CERT_EXPIREY
Annotations:  <none>
API Version:  apigee.cloud.google.com/v1alpha1
Kind:         ApigeeIssue
Metadata:
  Creation Timestamp:  2023-06-12T17:03:43Z
  Generation:          1
  Owner References:
    API Version:     apigee.cloud.google.com/v1alpha2
    Kind:            ApigeeOrganization
    Name:            my-org
    UID:             7e83a52c-ce00-4bed-98be-55835ada1817
  Resource Version:  3281563
  UID:               adc775c2-376d-4bf9-9860-500b2b2b8273
Spec:
  Details:        CA certificate in secret "my-org-my-virtualhost" for ApigeeRouteConfig "my-org-my-virtualhost" expired at: 2024-03-11 19:12:10 +0000 UTC
  Documentation:  https://cloud.google.com/apigee/docs/hybrid/troubleshooting/AIS_INGRESS_MTLS_CA_CERT_EXPIREY
  Reason:         AIS_INGRESS_MTLS_CA_CERT_EXPIREY
  Severity:       ERROR
Events:           <none>
Spec:
  Details:        CA certificate in secret "my-org-my-virtualhost" for ApigeeRouteConfig "my-org-my-virtualhost" expired at: 2024-03-11 19:12:10 +0000 UTC

I contenuti di Spec.Details spiegano il nome di ApigeeRouteConfig che si riferisce al secret Kubernetes contenente il certificato CA mTLS in entrata scaduto.

Risoluzione

  1. Utilizza kubectl describe per visualizzare il nome di ApigeeRouteConfig che ha il certificato CA mTLS in entrata scaduto:

    kubectl -n apigee describe apigeeissue ISSUE_NAME

    Dove ISSUE_NAME è il nome del problema. Ad esempio, ca-cert-expired-my-org-my-virtualhost.

    In questo esempio, ApigeeRouteConfig my-org-my-virtualhost fa riferimento al secret my-org-my-virtualhost.

  2. Determina il nome di virtualhost da ApigeeRouteConfig.

    Il nome di ApigeeRouteConfig è nel formato: <Apigee organization>-<virtualhost name>.

    In questo esempio, my-org è l'organizzazione Apigee e il nome dell'host virtuale è my-virtualhost.

  3. Trova l'host virtuale corrispondente in overrides.yaml.

    virtualhosts:
    ...
    - name: my-virtualhost
      selector:
        app: apigee-ingressgateway
      caCertPath: ./certs/ca.pem
      sslCertPath: ./certs/vhost.pem
      sslKeyPath: ./certs/vhost.key
    ...
  4. Aggiorna il certificato CA elencato nel file caCertPath.

  5. Applica la modifica all'host virtuale:

    helm upgrade ENV_GROUP_NAME apigee-virtualhost/ \
      --namespace apigee \
      --set envgroup=ENV_GROUP_NAME \
      -f overrides.yaml

Deve raccogliere informazioni diagnostiche

Se il problema persiste anche dopo aver seguito le istruzioni riportate sopra, raccogli le seguenti informazioni diagnostiche e poi contatta l'assistenza clienti Google Cloud:

  1. L'ID progetto Google Cloud .
  2. Il nome dell'organizzazione Apigee hybrid.
  3. Il campo Spec.Details di ApigeeIssue.
  4. (facoltativo) File a cui fa riferimento caCertPath per l'host virtuale interessato.