<ph type="x-smartling-placeholder"></ph>
Vous consultez la documentation Apigee Edge.
Accédez à la page
Documentation sur Apigee X. En savoir plus
Symptôme
L'application cliente reçoit un code de réponse HTTP 502
avec le message
Bad Gateway
en réponse aux appels d'API dans Edge Microgateway.
L'administrateur reçoit également le message d'erreur self signed certificate in certificate
chain
lors de l'exécution de la
<ph type="x-smartling-placeholder"></ph>
edgemicro configure
.
Message d'erreur
Le client reçoit le message de réponse suivant:
HTTP/1.1 502 Bad Gateway
Voici deux exemples courants de réponses d'erreur:
{"message":"self signed certificate in certificate chain","code":"SELF_SIGNED_CERT_IN_CHAIN"}
{"message":"self signed certificate","code":"DEPTH_ZERO_SELF_SIGNED_CERT"}
Cette erreur peut également se produire lors de l'exécution de edgemicro configure
:
{ Error: self signed certificate in certificate chain at TLSSocket.onConnectSecure (_tls_wrap.js:1051:34) at TLSSocket.emit (events.js:189:13) at TLSSocket._finishInit (_tls_wrap.js:633:8) code: 'SELF_SIGNED_CERT_IN_CHAIN' }
Causes possibles
Cause | Description | Instructions de dépannage applicables |
---|---|---|
<ph type="x-smartling-placeholder"></ph> Le serveur cible présente un certificat autosigné | Edge Microgateway vérifiera le certificat du serveur cible et, s'il n'est pas approuvé génère une erreur d'exécution. | Utilisateurs Edge de cloud public et privé |
Le serveur de gestion Apigee Edge utilise un certificat autosigné | Lorsque vous configurez Edge Microgateway pour la première fois, il se connecte à Apigee Edge via TLS à l'amorçage. Si Edge présente un certificat autosigné, cette opération échouera. | Utilisateurs de cloud privé Edge |
Cause: le serveur cible présente un certificat autosigné
<ph type="x-smartling-placeholder">Si un certificat autosigné est présenté par le serveur cible à l'adresse <ph type="x-smartling-placeholder"></ph> southbound, Edge Microgateway génère cette erreur par défaut, car il ne fait pas confiance aux certificats autosignés.
Diagnostic
Il est possible que l'erreur suivante s'affiche dans les journaux (/var/tmp/edgemicro-`hostname`-
*.log
):
2021-05-18T10:52:46.425Z [error][0:8000][1][gsc][test][edgemicro_badtargethost][][][2db53f80- b7c7-11eb-9abe-05b6297863f1][microgateway-core][][GET][502][self signed certificate in certificate chain][SELF_SIGNED_CERT_IN_CHAIN][]
Le code d'erreur SELF_SIGNED_CERT_IN_CHAIN
indique que Edge Microgateway a
très probablement reçu un certificat
autosigné du serveur cible. Pour vous en assurer,
procédez comme suit:
- Exécutez la commande
openssl
suivante pour vérifier le bon fonctionnement du chaîne de certificats:echo | openssl s_client -connect TARGET_SERVER_HOSTNAME:PORT -servername TARGET_SERVER_HOSTNAME | openssl x509 -noout
-
Si la chaîne de certificats du serveur cible est effectivement autosignée, le problème.
Dans l'exemple suivant, notez que le serveur cible présente un certificat autosigné:
echo | openssl s_client -connect untrusted-root.badssl.com:443 -servername untrusted-root.badssl.com | openssl x509 -noout
depth=1 C = US, ST = California, L = San Francisco, O = BadSSL, CN = BadSSL Untrusted Root Certificate Authority verify error:num=19:self signed certificate in certificate chain verify return:0 DONE
Solution
- Collaborez avec l'équipe propriétaire du serveur cible pour obtenir un certificat TLS approprié signé par un autorité de certification de confiance. <ph type="x-smartling-placeholder">
Si cela n'est pas possible, envisagez l'une des options suivantes pour autoriser les autosignés certificats dans Edge Microgateway.
<ph type="x-smartling-placeholder">Option 1: définir une propriété système pour permettre à Edge Microgateway d'approuver tous les certificats
- Si vous utilisez Docker, consultez les <ph type="x-smartling-placeholder"></ph> Utiliser une autorité de certification non approuvée par Node.js
Sinon, exportez une variable d'environnement appelée
NODE_EXTRA_CA_CERTS
, pointant vers le fichier CA racine.Ces informations sont indiquées sur la page Node.js sur votre site Web.
Option 2: configurer le fichier de configuration YAML Edge Microgateway pour faire confiance à ce un certificat pour ce serveur cible
- Assurez-vous que le certificat (ou la chaîne) du serveur cible est au format PEM. À convertir d'autres formats de certificat au format PEM, <ph type="x-smartling-placeholder"></ph> Conversion des certificats dans un format compatible
S'il existe une chaîne de certificats, assurez-vous que les certificats sont au bon commande. Le certificat d'entité finale doit toujours apparaître en premier, suivi du certificat intermédiaire le certificat racine, puis le certificat racine. Vous trouverez plus d'explications à ce sujet dans <ph type="x-smartling-placeholder"></ph> Validation de la chaîne de certificats
Dans l'exemple suivant, nous avons configuré le fichier CA de confiance pour
untrusted-root.badssl.com
edgemicro: ... targets: - host: 'untrusted-root.badssl.com' ssl: client ca: /opt/apigee/certs/untrusted-root.pem
Les instructions de configuration sont également décrites dans le <ph type="x-smartling-placeholder"></ph> Vidéo Edge Microgateway Module - Configure 1-way and 2-way Southbound TLS Consultez <ph type="x-smartling-placeholder"></ph> Configuration SSL sur le serveur Edge Microgateway pour en savoir plus.
Si le problème persiste, accédez à Obligation de recueillir des informations de diagnostic.
Cause: le serveur de gestion Apigee Edge utilise un certificat autosigné
<ph type="x-smartling-placeholder">Lorsque vous configurez Edge Microgateway pour la première fois, l'une des commandes que vous devez exécuter
est edgemicro configure
ou edgemicro private configure
. Cette commande
amorce le cluster, qui contacte Apigee Edge pour télécharger les informations requises.
Pour Edge Private Cloud, l'URL du serveur de gestion est déterminée par l'argument -m
.
Si vous avez activé le protocole TLS pour le serveur de gestion, Edge Microgateway tentera de vérifier
le certificat présenté par
le serveur de gestion.
Voici un exemple de commande edgemicro configure
pour Edge Private Cloud:
edgemicro private configure -u <username> -p <password> -o apigee -e dev -v secure -r https://apigee-dev.net -m https://management.apigee-dev.net:8443
Si le serveur de gestion est configuré avec un certificat autosigné, vous obtiendrez le l'erreur suivante dans le résultat de la console.
{ Error: self signed certificate in certificate chain at TLSSocket.onConnectSecure (_tls_wrap.js:1051:34) at TLSSocket.emit (events.js:189:13) at TLSSocket._finishInit (_tls_wrap.js:633:8) code: 'SELF_SIGNED_CERT_IN_CHAIN' }
Diagnostic
- Dans ce cas, le serveur de gestion
(
management.apigee-dev.net
) peut renvoyer un certificat TLS autosigné. - Il est probable que votre administrateur système Apigee Edge ait fourni le certificat et en possède une copie.
- Sinon, exécutez la commande suivante pour obtenir des informations sur le certificat:
echo | openssl s_client -connect management.apigee-dev.net:8443 -servername management.apigee-dev.net | openssl x509 -noout
- Si le serveur de gestion dispose d'un certificat autosigné, c'est la cause de ce problème. problème.
Solution
- Collaborez avec l'équipe propriétaire du serveur cible pour obtenir un certificat TLS approprié signé par un autorité de certification de confiance. <ph type="x-smartling-placeholder">
Si cela n'est pas possible, procédez comme suit pour autoriser les certificats autosignés certificats dans Edge Microgateway.
<ph type="x-smartling-placeholder">
- Définissez une propriété système pour autoriser Edge Microgateway à approuver tous les certificats.
- Si vous utilisez Docker, consultez les <ph type="x-smartling-placeholder"></ph> Utiliser une autorité de certification non approuvée par Node.js
- Sinon, exportez une variable d'environnement appelée
NODE_EXTRA_CA_CERTS
, pointant vers le fichier CA racine. documenté sur la page officielle Site Web Node.js. <ph type="x-smartling-placeholder">
Vous devez collecter des informations de diagnostic
Si le problème persiste alors que vous avez suivi les instructions ci-dessus, rassemblez les informations suivantes : de diagnostic, puis contactez l'assistance Apigee Edge:
- Fichiers journaux: le dossier par défaut est
/var/tmp
, mais il peut être remplacé dans le fichierconfig.yaml
principal (logging > dir parameter
). Il est est recommandé de remplacerlog > level
parinfo
avant de fournir la valeur à l'assistance Apigee Edge. - Fichier de configuration: la configuration principale d'Edge Microgateway se trouve dans le fichier YAML
dans le dossier Edge Microgateway par défaut,
$HOME/.edgemicro
. Il y a un fichier de configuration par défaut appelédefault.yaml
, puis un pour chaque environnement ORG-ENV-config.yaml
. Importer ce fichier pour l'organisation et l'environnement concernés.Documents de référence
<ph type="x-smartling-placeholder"></ph> Configurer l'interface utilisateur Edge pour utiliser TLS afin d'accéder à l'API Edge