Stai visualizzando la documentazione di Apigee e Apigee hybrid.
Non esiste documentazione equivalente di
Apigee Edge per questo argomento.
Sintomo
Un ApigeeIssue
con Reason
AIS_INGRESS_CERT_MISMATCH
viene visualizzato quando visualizzi le risorse nello spazio dei nomi apigee
.
Messaggi di errore
Dopo aver eseguito kubectl -n apigee get apigeeissues
, viene visualizzato il seguente errore:
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: mancata corrispondenza del certificato Ingress
La chiave privata e il certificato archiviati nel secret Kubernetes a cui fa riferimento un
ApigeeRouteConfig
non corrispondono.
Diagnosi
Esegui questo comando:
kubectl -n apigee describe apigeeissue ISSUE_NAME
dove ISSUE_NAME è il nome del problema. Ad esempio,
ingress-cert-mismatch-my-org-my-virtualhost
.
Viene restituito qualcosa di simile al seguente:
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
I contenuti di Spec.Details
spiegano il nome di ApigeeRouteConfig
che fa riferimento al segreto Kubernetes contenente il certificato di accesso e la chiave privata.
Risoluzione
-
Utilizza
kubectl describe
per visualizzare il nome delApigeeRouteConfig
con la chiave e il certificato di ingresso non corrispondenti:kubectl -n apigee describe apigeeissue ISSUE_NAME
dove ISSUE_NAME è il nome del problema. Ad esempio,
ingress-cert-mismatch-my-org-my-virtualhost
.In questo esempio,
ApigeeRouteConfig
my-org-my-virtualhost
fa riferimento al secretmy-org-my-virtualhost
. -
Determina il nome
virtualhost
dalApigeeRouteConfig
.Il nome del
ApigeeRouteConfig
ha il seguente formato:<Apigee organization>-<virtualhost name>
.In questo esempio,
my-org
è l'organizzazione Apigee e il nome del virtualhost èmy-virtualhost
. -
Trova il virtualhost corrispondente nel file
overrides.yaml
:virtualhosts: ... - name: my-virtualhost selector: app: apigee-ingressgateway sslCertPath: ./certs/vhost.pem sslKeyPath: ./certs/vhost.key ...
-
Verifica che i file del certificato e della chiave utilizzati corrispondano.
Utilizzando
sslCertPath
esslKeyPath
del passaggio precedente, convalida la corrispondenza delle somme MD5 utilizzandoopenssl
:openssl x509 -noout -modulus -in SSL_CERT_PATH | openssl md5
openssl rsa -noout -modulus -in SSL_KEY_PATH | openssl md5
-
dove SSL_CERT_PATH è
sslCertPath
del passaggio precedente. Ad esempio:./certs/vhost.pem
. -
dove SSL_KEY_PATH è
sslKeyPath
del passaggio precedente. Ad esempio:./certs/vhost.key
.
L'output dei due comandi precedenti dovrebbe corrispondere:
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
-
dove SSL_CERT_PATH è
-
Se l'output dei comandi precedenti non corrisponde, utilizza uno dei seguenti metodi per risolvere il problema:
-
Aggiorna
sslCertPath
esslKeyPath
del virtualhost in modo che rimandino ai percorsi dei file corretti. -
Correggi i contenuti del file
sslCertPath
osslKeyPath
in modo che contengano la coppia di chiavi e il certificato corrispondenti corretti.
-
Aggiorna
-
Applica le modifiche al virtualhost utilizzando Helm:
helm upgrade ENV_GROUP_NAME apigee-virtualhost/ \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=ENV_GROUP_NAME \ -f OVERRIDES_FILE
Assicurati di includere tutte le impostazioni mostrate, inclusa
--atomic
in modo che l'azione venga ripristinata in caso di errore.
Deve raccogliere informazioni di diagnostica
Se il problema persiste anche dopo aver seguito le istruzioni riportate sopra, raccogli le seguenti informazioni di diagnostica e poi contatta l'assistenza clienti Google Cloud:
- L' Google Cloud ID progetto.
- Il nome dell'organizzazione Apigee hybrid.
- Il campo
Spec.Details
diApigeeIssue
. -
(Facoltativo) File a cui fanno riferimento
sslCertPath
esslKeyPath
per il virtualhost interessato.