Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Belirti
İstemci uygulaması, Edge Microgateway'deki API çağrılarına yanıt olarak 502 HTTP yanıt kodunu ve Bad Gateway mesajını alır.
Alternatif olarak, yönetici self signed certificate in certificate
chain komutunu çalıştırırken
edgemicro configure hatası alır.
Hata mesajı
İstemci aşağıdaki yanıt mesajını görür:
HTTP/1.1 502 Bad Gateway
Hata yanıtlarına ilişkin iki yaygın örnek şunlardır:
{"message":"self signed certificate in certificate chain","code":"SELF_SIGNED_CERT_IN_CHAIN"}{"message":"self signed certificate","code":"DEPTH_ZERO_SELF_SIGNED_CERT"}
Alternatif olarak, bu hata edgemicro configure çalıştırılırken de oluşabilir:
{ 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' }Olası nedenler
| Neden | Açıklama | Aşağıdaki ürünler için geçerli sorun giderme talimatları |
|---|---|---|
| Hedef sunucu, kendinden imzalı bir sertifika sunuyor | Edge Microgateway, hedef sunucunun sertifikasını doğrular ve güvenilir değilse bir çalışma zamanı hatası oluşturur. | Edge Public ve Private Cloud kullanıcıları |
| Apigee Edge Management Server, kendinden imzalı bir sertifika kullanıyor | Edge Microgateway ilk kez yapılandırıldığında, başlatma için TLS üzerinden Apigee Edge'e bağlanır. Edge, kendinden imzalı bir sertifika sunarsa bu işlem başarısız olur. | Edge Private Cloud kullanıcıları |
Neden: Hedef sunucu, kendinden imzalı bir sertifika sunuyor
Hedef sunucu kendinden imzalı bir sertifika sunduğunda Edge Microgateway, güney bağlantısında varsayılan olarak bu hatayı oluşturur. Bunun nedeni, kendinden imzalı sertifikalara güvenmemesidir.
Teşhis
Günlüklerde (/var/tmp/edgemicro-`hostname`-
*.log) aşağıdaki hatayı görebilirsiniz:
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][]
SELF_SIGNED_CERT_IN_CHAIN hata kodu, Edge Microgateway'in hedef sunucudan büyük olasılıkla kendinden imzalı bir sertifika aldığını gösterir. Bunu doğrulamak için aşağıdaki adımları uygulayın:
- Hedef sunucunun sertifika zincirini doğrulamak için aşağıdaki
opensslkomutunu çalıştırın:echo | openssl s_client -connect TARGET_SERVER_HOSTNAME:PORT -servername TARGET_SERVER_HOSTNAME | openssl x509 -noout
-
Hedef sunucunun sertifika zinciri gerçekten kendinden imzalıysa sorunun nedeni budur.
Aşağıdaki örnekte, hedef sunucunun kendinden imzalı bir sertifika sunduğunu unutmayın:
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
Çözünürlük
- Hedef sunucunun sahibi olan ekiple birlikte çalışarak güvenilir bir Sertifika Yetkilisi (CA) tarafından imzalanmış uygun bir TLS sertifikası edinin.
Bu mümkün değilse Edge Microgateway'de kendinden imzalı sertifikalara izin vermek için aşağıdaki seçeneklerden birini kullanabilirsiniz.
1. seçenek: Edge Microgateway'in tüm sertifikalara güvenmesine izin vermek için bir sistem özelliği ayarlayın
- Docker kullanıyorsanız, Node.js tarafından güvenilmeyen bir CA kullanma başlıklı makaleye bakın.
Aksi takdirde, kök CA dosyasına işaret eden
NODE_EXTRA_CA_CERTSadlı bir ortam değişkenini dışa aktarın.Bu durum, resmi Node.js web sitesinde belgelenmiştir.
2. seçenek: Edge Microgateway YAML yapılandırma dosyasını, hedef sunucu için söz konusu sertifikaya güvenecek şekilde yapılandırın
- Hedef sunucunun sertifikasının (veya zincirinin) PEM biçiminde olduğundan emin olun. Diğer sertifika biçimlerini PEM'e dönüştürmek için Sertifikaları desteklenen biçime dönüştürme başlıklı makaledeki talimatları uygulayın.
Sertifika zinciri varsa sertifikaların doğru sırada olduğundan emin olun. Yaprak sertifika her zaman önce, ardından ara sertifika ve sonra kök sertifika gelmelidir. Bu konuyla ilgili daha fazla açıklamayı Sertifika zincirini doğrulama başlıklı makalede bulabilirsiniz.
Aşağıdaki örnekte,
untrusted-root.badssl.comiçin güvenilir CA dosyası yapılandırılmıştır.edgemicro: ... targets: - host: 'untrusted-root.badssl.com' ssl: client ca: /opt/apigee/certs/untrusted-root.pem
Bu yapılandırmayla ilgili talimatlar, Edge Microgateway Modülü - Tek Yönlü ve İki Yönlü Güney Bağlantılı TLS Yapılandırma videosunda da açıklanmaktadır. Daha fazla bilgi için Edge Microgateway sunucusunda SSL'yi yapılandırma başlıklı makaleyi inceleyin.
Sorun devam ederse Toplanması gereken teşhis bilgileri başlıklı makaleye gidin.
Neden: Apigee Edge Management Server, kendinden imzalı bir sertifika kullanıyor
Edge Microgateway ilk kez kurulduğunda çalıştırmanız gereken komutlardan biri edgemicro configure veya edgemicro private configure'dir. Bu komut, kümenin önyüklemesini yapar ve gerekli bilgileri indirmek için Apigee Edge ile iletişime geçer.
Edge Private Cloud'da Yönetim Sunucusu URL'si -m bağımsız değişkeniyle belirlenir.
Yönetim sunucusu için TLS'yi etkinleştirdiyseniz Edge Microgateway, Yönetim Sunucusu tarafından sunulan sertifikayı doğrulamaya çalışır.
Edge Private Cloud için örnek bir edgemicro configure komutu aşağıda verilmiştir:
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
Yönetim sunucusu kendinden imzalı bir sertifikayla yapılandırılmışsa konsol çıkışında aşağıdaki hatayı alırsınız.
{ 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' }Teşhis
- Bu durumda, Yönetim Sunucusu
(
management.apigee-dev.net) kendinden imzalı bir TLS sertifikası döndürüyor olabilir. - Apigee Edge sistem yöneticiniz sertifikayı sağlamış ve bir kopyasını almış olabilir.
- Aksi takdirde, sertifika hakkında bilgi almak için aşağıdaki komutu çalıştırın:
echo | openssl s_client -connect management.apigee-dev.net:8443 -servername management.apigee-dev.net | openssl x509 -noout
- Yönetim sunucusunda kendinden imzalı bir sertifika varsa bu sorunun nedeni budur.
Çözünürlük
- Hedef sunucunun sahibi olan ekiple birlikte çalışarak güvenilir bir Sertifika Yetkilisi (CA) tarafından imzalanmış uygun bir TLS sertifikası edinin.
Bu mümkün değilse Edge Microgateway'de kendinden imzalı sertifikalara izin vermek için aşağıdakileri yapın.
- Edge Microgateway'in tüm sertifikalara güvenmesine izin vermek için bir sistem özelliği ayarlayın.
- Docker kullanıyorsanız şu makaleye bakın: Node.js tarafından güvenilmeyen bir CA kullanma.
- Aksi takdirde, kök CA dosyasına işaret eden
NODE_EXTRA_CA_CERTSadlı bir ortam değişkenini dışa aktarın.Bu, resmi Node.js web sitesinde belgelenmiştir.
Teşhis bilgilerini toplamalıdır
Yukarıdaki talimatları uyguladıktan sonra sorun devam ederse aşağıdaki teşhis bilgilerini toplayın ve Apigee Edge Destek Ekibi ile iletişime geçin:
- Günlük dosyaları: Varsayılan klasör
/var/tmp'dir ancak anaconfig.yamldosyasında (logging > dir parameter) geçersiz kılınabilir. Günlük dosyalarını Apigee Edge Destek Ekibi'ne göndermeden öncelog > leveldeğeriniinfoolarak değiştirmeniz önerilir. - Yapılandırma dosyası: Edge Microgateway'in ana yapılandırması, varsayılan Edge Microgateway klasöründeki
$HOME/.edgemicroYAML dosyasında bulunur.default.yamladlı bir varsayılan yapılandırma dosyası ve her ortam için bir tane ORG-ENV-config.yamldosyası vardır. Bu dosyayı etkilenen kuruluş ve ortam için tam olarak yükleyin.Referans belgeleri
Edge API'ye erişmek için Edge kullanıcı arayüzünü TLS kullanacak şekilde yapılandırma