Vencimiento del certificado de entrada

Estás consultando la documentación de Apigee y Apigee hybrid.
No hay documentación de Apigee Edge sobre este tema.

Síntoma

Se muestra un ApigeeIssue con Reason AIS_INGRESS_CERT_EXPIREY al ver los recursos del espacio de nombres apigee.

Mensajes de error

Después de ejecutar kubectl -n apigee get apigeeissues, se muestra un error como el siguiente:

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

Posibles motivos

Causa Descripción
El certificado de entrada caduca pronto El certificado de entrada configurado caducará en un plazo de 14 días.
El certificado de entrada ha caducado El certificado de entrada configurado ha caducado.

Causa: El certificado de entrada caduca pronto

El certificado de entrada almacenado en el secreto de Kubernetes al que hace referencia un ApigeeRouteConfig caducará en los próximos 14 días.

Diagnóstico

Ejecuta el siguiente comando:

kubectl -n apigee describe apigeeissue ISSUE_NAME

Donde ISSUE_NAME es el nombre del problema. Por ejemplo, ingress-cert-expiring-soon-my-org-my-virtualhost.

La salida debería ser similar a la siguiente:

Name:         ingress-cert-expiring-soon-my-org-my-virtualhost
Namespace:    apigee
Labels:       ais-reason=AIS_INGRESS_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:        Ingress 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_CERT_EXPIREY
  Reason:         AIS_INGRESS_CERT_EXPIREY
  Severity:       WARNING
Events:           <none>
Spec:
  Details:        Ingress 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

El contenido de Spec.Details explica el nombre de ApigeeRouteConfig, que hace referencia al secreto de Kubernetes que contiene el certificado de entrada que va a caducar pronto.

Resolución

  1. Usa kubectl describe para mostrar el nombre del ApigeeRouteConfig que tiene el certificado de entrada que va a caducar pronto:

    kubectl -n apigee describe apigeeissue ISSUE_NAME

    Donde ISSUE_NAME es el nombre del problema. Por ejemplo, ingress-cert-expiring-soon-my-org-my-virtualhost.

    En este ejemplo, ApigeeRouteConfig my-org-my-virtualhost hace referencia al secreto my-org-my-virtualhost.

  2. Determina el nombre de virtualhost a partir de ApigeeRouteConfig.

    El nombre de ApigeeRouteConfig tiene el siguiente formato: <Apigee organization>-<virtualhost name>.

    En este ejemplo, my-org es la organización de Apigee y el nombre del host virtual es my-virtualhost.

  3. Busca el virtualhost correspondiente en tu overrides.yaml.

    virtualhosts:
    ...
    - name: my-virtualhost
      selector:
        app: apigee-ingressgateway
      sslCertPath: ./certs/vhost.pem
      sslKeyPath: ./certs/vhost.key
    ...
  4. Actualiza el certificado y la clave que aparecen en los archivos sslCertPath y sslKeyPath.

  5. Aplica los cambios al host virtual:

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

Causa: el certificado de entrada ha caducado

El certificado de entrada almacenado en el secreto de Kubernetes al que hace referencia un ApigeeRouteConfig ha caducado.

Diagnóstico

Ejecuta el siguiente comando:

kubectl -n apigee describe apigeeissue ISSUE_NAME

Donde ISSUE_NAME es el nombre del problema. Por ejemplo, ingress-cert-expired-my-org-my-virtualhost.

Se devuelve algo similar a lo siguiente:

Name:         ingress-cert-expired-my-org-my-virtualhost
Namespace:    apigee
Labels:       ais-reason=AIS_INGRESS_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:        Ingress 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_CERT_EXPIREY
  Reason:         AIS_INGRESS_CERT_EXPIREY
  Severity:       ERROR
Events:           <none>
Spec:
  Details:        Ingress certificate in secret "my-org-my-virtualhost" for ApigeeRouteConfig "my-org-my-virtualhost" expired at: 2024-03-11 19:12:10 +0000 UTC

El contenido de Spec.Details explica el nombre de ApigeeRouteConfig, que hace referencia al secreto de Kubernetes que contiene el certificado de entrada que ha caducado.

Resolución

  1. Usa kubectl describe para mostrar el nombre del ApigeeRouteConfig que tiene el certificado de entrada caducado:

    kubectl -n apigee describe apigeeissue ISSUE_NAME

    Donde ISSUE_NAME es el nombre del problema. Por ejemplo, ingress-cert-expired-my-org-my-virtualhost.

    En este ejemplo, ApigeeRouteConfig my-org-my-virtualhost hace referencia al secreto my-org-my-virtualhost.

  2. Determina el nombre de virtualhost a partir de ApigeeRouteConfig.

    El nombre de ApigeeRouteConfig tiene el siguiente formato: <Apigee organization>-<virtualhost name>.

    En este ejemplo, my-org es la organización de Apigee y el nombre del host virtual es my-virtualhost.

  3. Busca el virtualhost correspondiente en tu overrides.yaml.

    virtualhosts:
    ...
    - name: my-virtualhost
      selector:
        app: apigee-ingressgateway
      sslCertPath: ./certs/vhost.pem
      sslKeyPath: ./certs/vhost.key
    ...
  4. Actualiza el certificado y la clave que aparecen en los archivos sslCertPath y sslKeyPath.

  5. Aplica los cambios al host virtual:

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

Debe recoger información de diagnóstico

Si el problema persiste incluso después de seguir las instrucciones anteriores, reúne la siguiente información de diagnóstico y ponte en contacto con el equipo de Asistencia de Google Cloud:

  1. El Google Cloud ID del proyecto.
  2. Nombre de la organización de Apigee Hybrid.
  3. El campo Spec.Details del ApigeeIssue.
  4. (Opcional) Archivos a los que hacen referencia sslCertPath y sslKeyPath para el virtualhost afectado.