Vous consultez la documentation d'Apigee et d'Apigee hybrid.
Il n'existe pas de documentation Apigee Edge équivalente pour ce sujet.
Symptôme
Un ApigeeIssue
avec Reason
AIS_INGRESS_MTLS_CA_CERT_INVALID
s'affiche lorsque vous consultez les ressources de l'espace de noms apigee
.
Messages d'erreur
Une fois kubectl -n apigee get apigeeissues
exécuté, une erreur semblable à celle-ci s'affiche :
NAME SEVERITY REASON DOCUMENTATION AGE ca-cert-invalid-my-org-my-virtualhost ERROR AIS_INGRESS_MTLS_CA_CERT_INVALID https://cloud.google.com/apigee/docs/hybrid/troubleshooting/AIS_INGRESS_MTLS_CA_CERT_INVALID 5h18m
Causes possibles
Cause | Description |
---|---|
Le certificat CA d'entrée mTLS n'est pas encodé au format PEM | Le certificat CA d'entrée mTLS configuré n'est pas encodé au format PEM. |
Le certificat CA d'entrée mTLS est incorrect | Le certificat CA d'entrée mTLS configuré est incorrect. |
Cause: Le certificat CA mTLS d'entrée n'est pas encodé au format PEM
Le certificat CA d'entrée mTLS stocké dans le secret Kubernetes référencé par un ApigeeRouteConfig
ne contient pas les blocs de texte encodés au format PEM (ou ils sont incorrects).
Diagnostic
Exécutez la commande suivante :
kubectl -n apigee describe apigeeissue ISSUE_NAME
Où ISSUE_NAME est le nom du problème. Par exemple, ca-cert-invalid-my-org-my-virtualhost
.
Le résultat doit ressembler à ce qui suit :
Name: ca-cert-invalid-my-org-my-virtualhost Namespace: apigee Labels: ais-reason=AIS_INGRESS_MTLS_CA_CERT_INVALID 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 not PEM encoded Documentation: https://cloud.google.com/apigee/docs/hybrid/troubleshooting/AIS_INGRESS_MTLS_CA_CERT_INVALID Reason: AIS_INGRESS_MTLS_CA_CERT_INVALID Severity: ERROR Events: <none>
Spec: Details: CA certificate in secret "my-org-my-virtualhost" for ApigeeRouteConfig "my-org-my-virtualhost" is not PEM encoded
Le contenu de Spec.Details
explique le nom du ApigeeRouteConfig
qui fait référence au secret Kubernetes contenant le certificat CA d'entrée mTLS qui n'est pas encodé au format PEM.
Solution
-
Utilisez
kubectl describe
pour afficher le nom duApigeeRouteConfig
contenant le certificat CA d'entrée mTLS qui n'est pas encodé au format PEM:kubectl -n apigee describe apigeeissue ISSUE_NAME
Où ISSUE_NAME est le nom du problème. Par exemple,
ca-cert-invalid-my-org-my-virtualhost
.Dans cet exemple,
ApigeeRouteConfig
my-org-my-virtualhost
fait référence au secretmy-org-my-virtualhost
. -
Déterminez le nom
virtualhost
à partir deApigeeRouteConfig
.Le nom de la fonction
ApigeeRouteConfig
est au format suivant :<Apigee organization>-<virtualhost name>
.Dans cet exemple,
my-org
est l'organisation Apigee et le nom de l'hôte virtuel estmy-virtualhost
. -
Recherchez l'hôte virtuel correspondant dans votre
overrides.yaml
.virtualhosts: ... - name: my-virtualhost selector: app: apigee-ingressgateway caCertPath: ./certs/ca.pem sslCertPath: ./certs/vhost.pem sslKeyPath: ./certs/vhost.key ...
-
Validez le contenu du fichier fourni via le chemin d'accès déclaré dans
caCertPath
. Vérifiez que le contenu contient les blocs de certificats de début et de fin requis. Exemple :-----BEGIN CERTIFICATE----- MIIDYTCCAkmgAwIBAgIUSXeU0pQYRFzYlqZpKhNNJdBLFBIwDQYJKoZIhvcNAQEL ... <contents omitted> ... eWJyaWQuZTJlLmFwaWdlZWtzLm5ldDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC MMM= -----END CERTIFICATE-----
-
Une fois le contenu et le format du fichier corrigés, appliquez la modification à l'hôte virtuel:
helm upgrade ENV_GROUP_NAME apigee-virtualhost/ \ --namespace apigee \ --set envgroup=ENV_GROUP_NAME \ -f overrides.yaml
Cause: Le certificat CA d'entrée mTLS est incorrect
Le certificat CA d'entrée mTLS stocké dans le secret Kubernetes référencé par un ApigeeRouteConfig
est incorrect.
Diagnostic
Exécutez la commande suivante :
kubectl -n apigee describe apigeeissue ISSUE_NAME
Où ISSUE_NAME est le nom du problème. Par exemple, ca-cert-invalid-my-org-my-virtualhost
.
Le résultat doit ressembler à ce qui suit :
Name: ca-cert-invalid-my-org-my-virtualhost Namespace: apigee Labels: ais-reason=AIS_INGRESS_MTLS_CA_CERT_INVALID 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 invalid Documentation: https://cloud.google.com/apigee/docs/hybrid/troubleshooting/AIS_INGRESS_MTLS_CA_CERT_INVALID Reason: AIS_INGRESS_MTLS_CA_CERT_INVALID Severity: ERROR Events: <none>
Spec: Details: CA certificate in secret "my-org-my-virtualhost" for ApigeeRouteConfig "my-org-my-virtualhost" is invalid
Le contenu de Spec.Details
explique le nom du ApigeeRouteConfig
qui fait référence au secret Kubernetes contenant le certificat CA d'entrée mTLS dont le format est incorrect et n'a pas pu être analysé.
Solution
-
Utilisez
kubectl describe
pour afficher le nom duApigeeRouteConfig
dont le certificat CA d'entrée mTLS est incorrect:kubectl -n apigee describe apigeeissue ISSUE_NAME
Où ISSUE_NAME est le nom du problème. Par exemple,
ca-cert-invalid-my-org-my-virtualhost
.Dans cet exemple,
ApigeeRouteConfig
my-org-my-virtualhost
fait référence au secretmy-org-my-virtualhost
. -
Déterminez le nom
virtualhost
à partir deApigeeRouteConfig
.Le nom de la fonction
ApigeeRouteConfig
est au format suivant :<Apigee organization>-<virtualhost name>
.Dans cet exemple,
my-org
est l'organisation Apigee et le nom de l'hôte virtuel estmy-virtualhost
. -
Recherchez l'hôte virtuel correspondant dans votre
overrides.yaml
.virtualhosts: ... - name: my-virtualhost selector: app: apigee-ingressgateway caCertPath: ./certs/ca.pem sslCertPath: ./certs/vhost.pem sslKeyPath: ./certs/vhost.key ...
-
Validez le contenu du fichier fourni via le chemin d'accès déclaré dans
caCertPath
. Assurez-vous que le contenu contient l'intégralité du certificat. Exemple :-----BEGIN CERTIFICATE----- MIIDYTCCAkmgAwIBAgIUSXeU0pQYRFzYlqZpKhNNJdBLFBIwDQYJKoZIhvcNAQEL BQAwQDE+MDwGA1UEAww1bWF4bWlsbGlvbi1oeWJyaWQtc3RhZ2luZy1kZXYuaHli ... <contents omitted> ... 0TPPaik8U9dtFXMGT1DJkjPRPO0Jw5rlU8DKlNA/Kkv52aKJZNwB/cwmvoa/BFji PIPa9wY= -----END CERTIFICATE-----
-
Une fois le contenu et le format du fichier corrigés, appliquez la modification à l'hôte virtuel:
helm upgrade ENV_GROUP_NAME apigee-virtualhost/ \ --namespace apigee \ --set envgroup=ENV_GROUP_NAME \ -f overrides.yaml
Vous devez collecter des informations de diagnostic
Si le problème persiste, même après avoir suivi les instructions ci-dessus, rassemblez les informations de diagnostic suivantes, puis contactez Google Cloud Customer Care :
- ID de projet Google Cloud
- Nom de l'organisation Apigee Hybrid
- Champ
Spec.Details
deApigeeIssue
-
(Facultatif) Fichier référencé par
caCertPath
pour l'hôte virtuel concerné.