Estás consultando la documentación de Apigee y Apigee hybrid.
No hay documentación equivalente de
Apigee Edge sobre este tema.
Síntoma
Se muestra un ApigeeIssue
con Reason
AIS_INGRESS_CERT_MISMATCH
al ver los recursos del espacio de nombres apigee
.
Mensajes de error
Después de ejecutar kubectl -n apigee get apigeeissues
, se muestra el siguiente error:
NAME SEVERITY REASON DOCUMENTATION AGE ingress-cert-mismatch-my-org-my-virtualhost ERROR AIS_INGRESS_CERT_MISMATCH https://cloud.google.com/apigee/docs/hybrid/troubleshooting/AIS_INGRESS_CERT_MISMATCH 5h18m
Causa: discordancia de certificado de Ingress
La clave privada y el certificado almacenados en el secreto de Kubernetes al que hace referencia un
ApigeeRouteConfig
no coinciden.
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-mismatch-my-org-my-virtualhost
.
Se devuelve algo similar a lo siguiente:
Name: ingress-cert-mismatch-my-org-my-virtualhost Namespace: apigee Labels: ais-reason=AIS_INGRESS_CERT_MISMATCH 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 cert and private key in secret "my-org-my-virtualhost" for ApigeeRouteConfig "my-org-my-virtualhost" do not match Documentation: https://cloud.google.com/apigee/docs/hybrid/troubleshooting/AIS_INGRESS_CERT_MISMATCH Reason: AIS_INGRESS_CERT_MISMATCH Severity: ERROR Events: <none>
Spec: Details: Ingress cert and private key in secret "my-org-my-virtualhost" for ApigeeRouteConfig "my-org-my-virtualhost" do not match
El contenido de Spec.Details
explica el nombre de ApigeeRouteConfig
, que hace referencia al secreto de Kubernetes que contiene el certificado de entrada y la clave privada.
Resolución
-
Usa
kubectl describe
para mostrar el nombre delApigeeRouteConfig
que tiene un certificado y una clave de entrada que no coinciden:kubectl -n apigee describe apigeeissue ISSUE_NAME
Donde ISSUE_NAME es el nombre del problema. Por ejemplo,
ingress-cert-mismatch-my-org-my-virtualhost
.En este ejemplo,
ApigeeRouteConfig
my-org-my-virtualhost
hace referencia al secretomy-org-my-virtualhost
. -
Determina el nombre de
virtualhost
a partir deApigeeRouteConfig
.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 esmy-virtualhost
. -
Busca el host virtual correspondiente en el archivo
overrides.yaml
:virtualhosts: ... - name: my-virtualhost selector: app: apigee-ingressgateway sslCertPath: ./certs/vhost.pem sslKeyPath: ./certs/vhost.key ...
-
Valida que los archivos de certificado y clave que se están usando coincidan.
Con los valores
sslCertPath
ysslKeyPath
del paso anterior, valida que las sumas MD5 coincidan conopenssl
:openssl x509 -noout -modulus -in SSL_CERT_PATH | openssl md5
openssl rsa -noout -modulus -in SSL_KEY_PATH | openssl md5
-
Donde SSL_CERT_PATH es el
sslCertPath
del paso anterior. Por ejemplo,./certs/vhost.pem
. -
Donde SSL_KEY_PATH es el
sslKeyPath
del paso anterior. Por ejemplo,./certs/vhost.key
.
La salida de los dos comandos anteriores debe coincidir:
openssl x509 -noout -modulus -in ./certs/vhost.pem | openssl md5 MD5(stdin)= 40ba189dbe9d6fbfbdde1a8ef803d2d4
openssl rsa -noout -modulus -in ./certs/vhost.key | openssl md5 MD5(stdin)= 40ba189dbe9d6fbfbdde1a8ef803d2d4
-
Donde SSL_CERT_PATH es el
-
Si la salida de los comandos anteriores no coincide, utilice uno de los siguientes métodos para corregir el problema:
-
Actualiza
sslCertPath
ysslKeyPath
del host virtual para que apunten a las rutas de archivo correctas. -
Corrige el contenido del archivo
sslCertPath
osslKeyPath
para que contenga el par de clave y certificado correcto.
-
Actualiza
-
Aplica los cambios al virtualhost con Helm:
helm upgrade ENV_GROUP_NAME apigee-virtualhost/ \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=ENV_GROUP_NAME \ -f OVERRIDES_FILE
Asegúrate de incluir todos los ajustes que se muestran, incluido
--atomic
para que la acción se revierta si falla.
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:
- El Google Cloud ID del proyecto.
- Nombre de la organización de Apigee Hybrid.
- El campo
Spec.Details
deApigeeIssue
. -
(Opcional) Archivos a los que hacen referencia
sslCertPath
ysslKeyPath
para el virtualhost afectado.