Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Belirti
TLS/SSL el sıkışma hatası, istemci ve sunucu TLS/SSL protokolü için geçerlidir. Apigee Edge'de bu hata oluştuğunda istemci uygulaması Hizmet Kullanılamıyor mesajıyla birlikte bir HTTP durumu 503 alır. Siz TLS/SSL el sıkışma hatasının meydana geldiği API çağrısından sonra bu hatayı görürsünüz.
Hata mesajları
HTTP/1.1 503 Service Unavailable
Bu hata mesajını, bir TLS/SSL el sıkışması hatası oluştuğunda da görebilirsiniz:
Received fatal alert: handshake_failure
Olası nedenler
TLS (selesi SSL olan Taşıma Katmanı Güvenliği), Bir web sunucusu ile bir web istemcisi (ör. tarayıcı veya uygulama) arasında şifrelenmiş bağlantı oluşturarak. El sıkışma, TLS/SSL istemcisi ve sunucusunun bir gizli anahtar kümesi oluşturmasını sağlayan bir süreçtir büyük önem taşır. Bu işlem sırasında istemci ve sunucu:
- Kullanılacak protokolün sürümü üzerinde anlaşmaya varın.
- Kullanılacak şifreleme algoritmasını seçin.
- Dijital sertifikaları gönderip alarak birbirlerinin kimliklerini doğrulamalıdır.
TLS/SSL el sıkışması başarılı olursa TLS/SSL istemcisi ve sunucusu her bir
diğer güvenli aracını da kullanabilirsiniz. Aksi takdirde, bir TLS/SSL el sıkışma hatası oluşursa bağlantı sonlandırılır ve istemci
503 Service Unavailable
hata alır.
TLS/SSL el sıkışma hatalarının olası nedenleri şunlardır:
Neden | Açıklama | Sorun giderme adımlarını kimler gerçekleştirebilir? |
---|---|---|
Protokol uyuşmazlığı | İstemci tarafından kullanılan protokol sunucu tarafından desteklenmiyor. | Gizli ve Herkese Açık Bulut kullanıcıları |
Cipher Suite uyuşmazlığı | İstemci tarafından kullanılan şifre paketi, sunucu tarafından desteklenmiyor. | Gizli ve Herkese Açık Bulut kullanıcıları |
Yanlış Sertifika | İstemci tarafından kullanılan URL'deki ana makine adı, sertifikadaki ana makine adıyla eşleşmiyor depolanan verileri içerebilir. | Gizli ve Herkese Açık Bulut kullanıcıları |
Eksik veya geçersiz bir sertifika zinciri, istemci ya da sunucu tarafında depolanır. | Gizli ve Herkese Açık Bulut kullanıcıları | |
İstemci tarafından sunucuya veya sunucudan yanlış ya da süresi dolmuş bir sertifika gönderildi teslim etmeye odaklandığı teslimatı öğrendiniz. | Gizli ve Herkese Açık Bulut kullanıcıları | |
SNI Etkin Sunucu | Arka uç sunucusunda Sunucu Adı Göstergesi (SNI) etkin olmalıdır, ancak istemci, müşterinin bu hizmetle SNI sunucuları. | Yalnızca Private Cloud kullanıcıları |
Protokol Uyuşmazlık
İstemci tarafından kullanılan protokol veya giden (güneye giden) bağlantıda çalışır. Şu kaynakları da inceleyin Kuzeye ve güneye giden bağlantıları anlama
Teşhis
- Hatanın kuzey sınırında mı yoksa Güneye giden bağlantı. Bu konuda daha fazla yardım almak için belirlemek için Sorunun kaynağını belirlemek.
-
tcpdump yardımcı programını sunar:
- Private Cloud kullanıcısıysanız
tcpdump
verilerini toplayabilirsiniz. sunucudaki tüm verileri toplamanızı sağlar. İstemci, istemci uygulaması olabilir (gelen, veya kuzeye giden bağlantılar) ya da İşlemci (giden veya güneye giden bağlantılar için). Sunucu, uç yönlendirici olabilir ( gelen veya kuzeye giden bağlantılar) ya da arka uç sunucusuna (giden veya güneye giden bağlantılar için) otomatik olarak yeniden adlandırılacak. - Herkese açık Cloud kullanıcısıysanız
tcpdump
verilerini toplayabilirsiniz. yalnızca istemci uygulamasında (gelen veya kuzeye giden bağlantılar için) ya da arka uç sunucusunda veriler (giden veya güneye giden bağlantılar için), veya İleti İşlemcisi'ne erişimi yoktur.
Bkz.tcpdump -i any -s 0 host IP address -w File name
tcpdump
kullanımı hakkında daha fazla bilgi için tcpdump verilerini inceleyin. komutuna ekleyin. - Private Cloud kullanıcısıysanız
- Wireshark aracını kullanarak
tcpdump
verilerini analiz edin kullanabilirsiniz. - Elektronik tablo
kullanarak yapılmış
tcpdump komutunu kullanın.
- Bu örnekte, İleti İşleyen ile arasında gerçekleştirilen TLS/SSL el sıkışma hatası arka uç sunucusuna (giden veya güneye giden bağlantı) ekleyebilirsiniz.
- Aşağıdaki
tcpdump
çıkışında bulunan 4. ileti, İleti İşleyen (Kaynak) tarafından "Müşteri Merhaba" mesajı arka uç sunucusuna (Hedef) iletir.
Client Hello
mesajını seçerseniz İletiyi İşleyen Aşağıda gösterildiği gibi TLSv1.2 protokolü:- 5. mesaj, arka uç sunucusunun "Client Hello"yu onayladığını gösterir adlı kullanıcıdan mesaj Mesaj İşleyen.
- Arka uç sunucusu hemen Kritik Uyarı : Kapat Bilgilendirme'yi İleti İşleyici (mesaj 6). Bu, TLS/SSL El Sıkışmasının başarısız olduğu ve bağlantının emin olun.
6. mesaj daha ayrıntılı olarak incelendiğinde TLS/SSL el sıkışması hatasının nedeni, TLS/SSL el sıkışma hatasının arka uç sunucusu, aşağıda gösterildiği gibi yalnızca TLSv1.0 protokolünü destekler:
- Çünkü Mesaj İşleyen tarafından kullanılan protokol ile arka uç sunucusu şu mesajı gönderdi: Önemli Uyarı Mesajı: Kapat Bildir'i tıklayın.
Çözünürlük
İleti İşleyici, Java 8'de çalışır ve varsayılan olarak TLSv1.2 protokolünü kullanır. Arka uç sunucu TLSv1.2 protokolünü desteklemiyorsa, sorunu çözmek için aşağıdaki adımlardan birini uygulayabilirsiniz şu sorun:
- Arka uç sunucunuzu TLSv1.2 protokolünü destekleyecek şekilde yükseltin. Bu çözümün TLSv1.2 protokolü daha güvenlidir.
- Herhangi bir nedenden dolayı arka uç sunucunuzu hemen yükseltemezseniz
İleti İşleyen’i, ile iletişim kurmak için TLSv1.0 protokolünü kullanmaya
arka uç sunucusuna aktarmak için aşağıdaki adımları uygulayın:
- Proxy'nin TargetEndpoint tanımında bir hedef sunucu belirtmediyseniz,
Protocol
öğesiniTLSv1.0
için gösterildiği gibi aşağıda bulabilirsiniz:<TargetEndpoint name="default"> … <HTTPTargetConnection> <SSLInfo> <Enabled>true</Enabled> <Protocols> <Protocol>TLSv1.0</Protocol> </Protocols> </SSLInfo> <URL>https://myservice.com</URL> </HTTPTargetConnection> … </TargetEndpoint>
- Şunu yapılandırdıysanız: hedef sunucunuzu seçin, ardından yönetim API'sini kullanarak protokolü TLSv1.0 olarak hedef sunucu yapılandırması.
- Proxy'nin TargetEndpoint tanımında bir hedef sunucu belirtmediyseniz,
Cipher Uyuşmazlığı
İstemci tarafından kullanılan şifre paketi algoritması değilse TLS/SSL el sıkışma hatası görebilirsiniz Apigee Edge'de gelen (kuzeyye) veya giden (güneye) bağlantıda sunucu tarafından desteklenir. Şu kaynakları da inceleyin: Kuzeye ve güneye giden bağlantıları anlama
Teşhis
- Hatanın şu zamanda oluşup oluşmadığını kuzeyden veya güne doğru bağlantı. Bu kararı vermekle ilgili daha fazla yardım için bkz. Hedef kitlesi sorunun kaynağını öğrenin.
-
tcpdump yardımcı programını sunar:
- Private Cloud kullanıcısıysanız
tcpdump
verilerini toplayabilirsiniz. sunucudaki tüm verileri toplamanızı sağlar. İstemci, istemci uygulaması olabilir (gelen, veya kuzeye giden bağlantılar) ya da İşlemci (giden veya güneye giden bağlantılar için). Sunucu, uç yönlendirici olabilir ( gelen veya kuzeye giden bağlantılar) ya da arka uç sunucusuna (giden veya güneye giden bağlantılar için) otomatik olarak yeniden adlandırılacak. - Herkese açık Cloud kullanıcısıysanız
tcpdump
verilerini toplayabilirsiniz. yalnızca istemci uygulamasında (gelen veya kuzeye giden bağlantılar için) ya da arka uç sunucusunda veriler (giden veya güneye giden bağlantılar için), veya İleti İşlemcisi'ne erişimi yoktur.
Bkz. tcpdump verileri içintcpdump -i any -s 0 host IP address -w File name
tcpdump
komutunu kullanma hakkında daha fazla bilgi edinin. - Private Cloud kullanıcısıysanız
- Wireshark aracını kullanarak
tcpdump
verilerini analiz edin bildiğiniz başka bir aracı kullanabilirsiniz. - Wireshark kullanılarak
tcpdump
çıkışının örnek analizi aşağıda verilmiştir:- Bu örnekte, TLS/SSL El Sıkışma hatası, İstemci uygulaması ile
Uç yönlendirici (kuzey bağlantısı).
tcpdump
çıkışı Edge'de toplandı yönlendirici. Aşağıdaki
tcpdump
çıkışında bulunan 4. mesaj, istemci uygulamasının (kaynak) bir "Müşteri Merhaba" mesajı görebilirsiniz.İstemci Hello mesajı seçildiğinde, istemci uygulamanın TLSv1.2 protokolü.
- 5. mesaj, Uç Yönlendiricinin "İstemci Hello"yu onayladığını gösterir adlı kullanıcıdan mesaj kullanır.
- Edge yönlendiricisi, istemci uygulamasına (ileti 6). Bu, TLS/SSL el sıkışmasının başarısız olduğu ve bağlantının kapanacak.
- 6 numaralı mesaj ayrıntılı olarak incelendiğinde aşağıdaki bilgiler gösterilmektedir:
- Uç Yönlendirici, TLSv1.2 protokolünü destekler. Bu, protokolün istemci uygulaması ile Uç Yönlendirici arasında bağlantı kurulur.
Bununla birlikte, Edge yönlendiricisi Kritik Uyarı: El Sıkışma" göndermeye devam eder. Aşağıdaki ekran görüntüsünde gösterildiği gibi istemci uygulamasında hata:
- Hata, aşağıdaki sorunlardan birinin sonucu olabilir:
- İstemci uygulaması, Uç Yönlendirici.
- Uç Yönlendirici'de SNI etkin ancak istemci uygulaması sunucu adı.
tcpdump
çıktısındaki 4. mesaj, istemci tarafından desteklenen şifre paketi algoritmalarını listeliyor aşağıdaki gibi kullanın:- Uç Yönlendirici tarafından desteklenen şifre paketi algoritmaları listesi
/opt/nginx/conf.d/0-default.conf
dosyası yükleyin. Bu örnekte, Uç Yönlendirici yalnızca Yüksek Şifreleme şifre paketi algoritmalarını destekler. - İstemci uygulaması Yüksek Şifreleme şifre paketi algoritmalarından hiçbirini kullanmıyor. Bu uyumsuzluk, TLS/SSL el sıkışma hatası.
- Uç Yönlendiricide SNI etkin olduğu için
tcpdump
çıkışında 4. mesaja gidip aşağı kaydırın aşağıdaki örnekte gösterildiği gibi, istemci uygulamasının, sunucu adını doğru bir şekilde gönderdiğinden emin olun: aşağıdaki resme bakın:
- Bu ad geçerliyse TLS/SSL el sıkışma hatasının istemci uygulama tarafından kullanılan şifre paketi algoritmalarının uç yönlendirici.
- Bu örnekte, TLS/SSL El Sıkışma hatası, İstemci uygulaması ile
Uç yönlendirici (kuzey bağlantısı).
Çözünürlük
İstemcinin kullandığınız şifre paketi algoritmalarını kullandığından emin olun. tarafından desteklenir. Önceki bölümde açıklanan sorunu çözmek Teşhis bölümü, Java Cryptography Extension (JCE) paketini açıp Java'ya ekleyin şifre paketi algoritmalarını desteklemek için yüklenmelidir.
Yanlış Sertifika
Anahtar deposunda/güven deposunda yanlış sertifikalarınız varsa TLS/SSL el sıkışma hatası oluşur. veya giden (güneye giden) bağlantıda çalışır. Şu kaynakları da inceleyin Kuzeye ve güneye giden bağlantıları anlama
Sorun kuzey yönlü ise farklı hata mesajları görebilirsiniz farklı nedenleri olabilir.
Aşağıdaki bölümlerde örnek hata mesajları ve bu sorunu teşhis edip çözme adımlarına yer verilmiştir .
Hata mesajları
TLS/SSL el sıkışma hatasının nedenine bağlı olarak farklı hata mesajları görebilirsiniz. Aşağıda, bir API proxy'sini çağırdığınızda karşılaşabileceğiniz örnek bir hata mesajı verilmiştir:
* SSL certificate problem: Invalid certificate chain * Closing connection 0 curl: (60) SSL certificate problem: Invalid certificate chain More details here: http://curl.haxx.se/docs/sslcerts.html
Olası nedenler
Bu sorunun tipik nedenleri şunlardır:
Neden | Açıklama | Sorun giderme adımlarını kimler gerçekleştirebilir? |
Ana Makine Adı Uyuşmazlığı |
URL'de kullanılan ana makine adı ve yönlendiricinin anahtar deposundaki sertifika,
eşleşmesini sağlar. Örneğin, URL'de kullanılan ana makine adı myorg.domain.com ise
sertifikanın CN'sinde CN=something.domain.com. ana makinesinin adı vardır
|
Edge Özel ve Herkese Açık Bulut kullanıcıları |
Eksik veya Yanlış sertifika zincir | Sertifika zinciri eksik veya doğru değil. | Yalnızca Edge Özel ve Herkese Açık Bulut kullanıcıları |
tarafından gönderilen, süresi dolmuş veya bilinmeyen sunucu veya istemci | Süresi dolmuş veya bilinmeyen bir sertifika, sunucu ya da istemci tarafından kuzeye doğru veya güneye doğru bağlantıyı sağlar. | Edge Private Cloud ve Edge Herkese Açık Bulut kullanıcıları |
Ana makine adı Uyuşmazlık
Teşhis
- Aşağıdaki Edge management API çağrısının döndürdüğü URL'de kullanılan ana makine adını not edin:
Örnek:curl -v https://myorg.domain.com/v1/getinfo
curl -v https://api.enterprise.apigee.com/v1/getinfo
- Belirli bir anahtar deposunda depolanan sertifikada kullanılan CN'yi alın. URL parametrelerinin Google tarafından nasıl ele alınmasını istediğinizi belirtmek için
aşağıdaki sırayı takip ederek sertifikanın ayrıntılarını alabilirsiniz:
-
Anahtar deposundan sertifika adını alın:
Private Cloud kullanıcısıysanız Management API'yi aşağıdaki şekilde kullanın:
Herkese açık Cloud kullanıcısıysanız Management API'yi aşağıdaki şekilde kullanın:curl -v https://management-server-ip:port/v1/organizations/org-name/environments/env-name/keystores/keystore-name/certs
curl -v https://api.enterprise.apigee.com/v1/organizations/org-name/environments/env-name/keystores/keystore-name/certs
-
Edge management API'yi kullanarak anahtar deposunda sertifika ayrıntılarını alın.
.
. Private Cloud kullanıcısıysanız:
Herkese açık Cloud kullanıcısıysanız:curl -v https://management-server-ip:port/v1/organizations/org-name/environments/env-name/keystores/keystore-name/certs/cert-name
curl -v https://api.enterprise.apigee.com/v1/organizations/org-name/environments/env-name/keystores/keystore-name/certs/cert-name
Örnek sertifika:
"certInfo": [ { "basicConstraints": "CA:FALSE", "expiryDate": 1456258950000, "isValid": "No", "issuer": "SERIALNUMBER=07969287, CN=Go Daddy Secure Certification Authority, OU=http://certificates.godaddy.com/repository, O=\"GoDaddy.com, Inc.\", L=Scottsdale, ST=Arizona, C=US", "publicKey": "RSA Public Key, 2048 bits", "serialNumber": "07:bc:a7:39:03:f1:56", "sigAlgName": "SHA1withRSA", "subject": "CN=something.domain.com, OU=Domain Control Validated, O=something.domain.com", "validFrom": 1358287055000, "version": 3 },
Birincil sertifikadaki konu adı CN'yi
something.domain.com.
.Çünkü API istek URL'sinde kullanılan ana makine adı (yukarıdaki 1. adıma bakın) ve konusunda sertifikadaki ad eşleşmiyorsa TLS/SSL el sıkışma hatası alırsınız.
-
Anahtar deposundan sertifika adını alın:
Çözünürlük
Bu sorun, aşağıdaki iki yöntemden biriyle çözülebilir:
- Konu CN'sinde joker karakter bulunan bir sertifika edinin (henüz yoksa)
ve ardından yeni tam sertifika zincirini anahtar deposuna yükleyin. Örneğin:
"subject": "CN=*.domain.com, OU=Domain Control Validated, O=*.domain.com",
- Mevcut bir konu CN'si olan bir sertifika edinin (henüz yoksa) your-orgyour-domain adlı konuyu, alternatif bir konu adı olarak kullanın ve anahtar deposuna taşımanızı sağlar.
Referanslar
Anahtar depoları ve Truststores
Eksik veya yanlış sertifika zinciri
Teşhis
- Belirli bir anahtar deposunda depolanan sertifikada kullanılan CN'yi alın. URL parametrelerinin Google tarafından nasıl ele alınmasını istediğinizi belirtmek için
aşağıdaki sırayı takip ederek sertifikanın ayrıntılarını alabilirsiniz:
-
Anahtar deposundan sertifika adını alın:
Private Cloud kullanıcısıysanız:
Herkese açık Cloud kullanıcısıysanız:curl -v https://management-server-ip:port/v1/organizations/org-name/environments/env-name/keystores/keystore-name/certs
curl -v https://api.enterprise.apigee.com/v1/organizations/org-name/environments/env-name/keystores/keystore-name/certs
-
Anahtar deposunda sertifika ayrıntılarını alın:
Private Cloud kullanıcısıysanız:
Herkese açık Cloud kullanıcısıysanız:curl -v https://management-server-ip:port/v1/organizations/org-name/environments/env-name/keystores/keystore-name/certs/cert-name
curl -v https://api.enterprise.apigee.com/v1/organizations/org-name/environments/env-name/keystores/keystore-name/certs/cert-name
- Sertifikayı ve zincirini doğrulama ve politikaya uygunluğundan emin olma lütfen makalede belirtilen kurallara Sertifika zincirlerinin işleyiş şekli, geçerli ve eksiksiz bir sertifika sağlar sertifika zincirine benzer. Anahtar deposunda saklanan sertifika zincirinin eksik veya geçersiz olursa TLS/SSL el sıkışması başarısız olur.
- Aşağıdaki grafikte geçersiz sertifika zincirine sahip örnek bir sertifika gösterilmektedir. Bu durumda, ara ve kök sertifikalar eşleşmez:
Sertifikayı veren ve kök sertifikanın konu eşleşmiyor
-
Anahtar deposundan sertifika adını alın:
Çözünürlük
- Henüz yoksa) eksiksiz ve geçerli bir sertifika içeren sertifika zincirine benzer.
- Sertifika zincirinin doğru olduğunu onaylamak ve
tamamlandı:
openssl verify -CAfile root-cert -untrusted intermediate-cert main-cert
- Doğrulanmış sertifika zincirini anahtar deposuna yükleyin.
Süresi dolmuş veya bilinmiyor sunucu veya istemci tarafından gönderilen sertifika
Sunucu/istemci tarafından kuzeye doğru hatalı/süresi dolmuş bir sertifika gönderilirse güneye giden bağlantıda, diğer uç (sunucu/istemci) sertifikayı reddeder TLS/SSL el sıkışma hatasına neden olur.
Teşhis
- Hatanın kuzey sınırında mı yoksa Güneye giden bağlantı. Bu konuda daha fazla yardım almak için belirlemek için Sorunun kaynağını belirlemek.
-
tcpdump yardımcı programını sunar:
- Private Cloud kullanıcısıysanız
tcpdump
verilerini toplayabilirsiniz. sunucudaki tüm verileri toplamanızı sağlar. İstemci, istemci uygulaması olabilir (gelen, veya kuzeye giden bağlantılar) ya da İşlemci (giden veya güneye giden bağlantılar için). Sunucu, uç yönlendirici olabilir ( gelen veya kuzeye giden bağlantılar) ya da arka uç sunucusuna (giden veya güneye giden bağlantılar için) otomatik olarak yeniden adlandırılacak. - Herkese açık Cloud kullanıcısıysanız
tcpdump
verilerini toplayabilirsiniz. yalnızca istemci uygulamasında (gelen veya kuzeye giden bağlantılar için) ya da arka uç sunucusunda veriler (giden veya güneye giden bağlantılar için), veya İleti İşlemcisi'ne erişimi yoktur.
Bkz. tcpdump verileri içintcpdump -i any -s 0 host IP address -w File name
tcpdump
komutunu kullanma hakkında daha fazla bilgi edinin. - Private Cloud kullanıcısıysanız
tcpdump
verilerini Wireshark veya kullanabilirsiniz.tcpdump
çıkışından reddeden ana makineyi (istemci veya sunucu) belirleyin. sertifikasına ihtiyacınız var.- Diğer uçtan gönderilen sertifikayı
tcpdump
çıkışından alabilirsiniz ( Veriler şifrelenmez. Bu sertifika, güvenilir sertifikanız olduğundan emin olun. - Mesaj İşleyici ile Mesaj İşleyici arasındaki SSL iletişimi için örneği
tcpdump
inceleyin. arka uç sunucusuna gidin.Bilinmeyen Sertifika hatasını gösteren örnek
tcpdump
- Mesaj İşleyici (istemci), "Client Hello"yu gönderir arka uç sunucusuna (server) ifadesini kullandığınızdan emin olun.
- Arka uç sunucusu "Sunucu Hello"yu gönderir İletiyi İşleyen’e iletilecek 61.
- Kullanılan protokol ve şifre paketi algoritmalarını karşılıklı olarak doğrularlar.
- Arka uç sunucusu, Sertifika ve Sunucu Merhaba Tamamlandı mesajını 68 numaralı mesajdaki Mesaj İşleyici.
- İleti İşleyen, Önemli Uyarıyı gönderir. "Açıklama: Sertifika Bilinmiyor" ifadesini içeren bir yanıt gönderin.
- 70 numaralı mesaj incelendiğinde, başka herhangi bir ayrıntıya yer verilmemiştir.
uyarı mesajından daha fazlasını içerir:
- Arka uç tarafından gönderilen sertifikayla ilgili ayrıntıları almak için 68 numaralı mesajı inceleyin sunucuyu tanımlarsınız:
- Arka uç sunucusunun sertifikası ve zincirinin tamamı kullanılabilir “Sertifikalar” bölümüne ekleyin.
- Yönlendirici (kuzey doğrultusunda) veya yönlendirici tarafından sertifikanın bilinmediği belirlenirse
Yukarıda gösterilen örnekte olduğu gibi Mesaj İşleyici (güneye giden) gidin, ardından şu adımları izleyin:
için şu adımları izleyin:
- Sertifikayı ve ilgili güven deposunda depolanan zincirini alın. (bkz.
yönlendiricinin sanal ana makine yapılandırmasına ve
(İleti İşleyen). Aşağıdaki API'leri kullanarak
sertifika:
-
Truststore'dan sertifika adını alın:
curl -v https://management-server-ip:port/v1/organizations/org-name/environments/env-name/keystores/truststore-name/certs
-
Truststore'da sertifika ayrıntılarını alın:
curl -v https://management-server-ip:port/v1/organizations/org-name/environments/env-name/keystores/truststore-name/certs/cert-name
-
Truststore'dan sertifika adını alın:
- Sertifikanın Yönlendiricinin güven deposunda mı (kuzey yönlü) yoksa
İleti İşleyen (güneye giden),
istemci uygulamasının (kuzeyye doğru) veya hedef sunucunun (güneye giden) anahtar deposunu ya da
tcpdump
çıkışından elde edilen bir değerdir. Uyuşmazlık varsa bunun nedeni budur TLS/SSL el sıkışma hatası.
- Sertifikayı ve ilgili güven deposunda depolanan zincirini alın. (bkz.
yönlendiricinin sanal ana makine yapılandırmasına ve
(İleti İşleyen). Aşağıdaki API'leri kullanarak
sertifika:
- Sertifika, istemci uygulaması tarafından (kuzeyden) bilinmiyorsa
veya hedef sunucuya (güneye) gidin, ardından şu adımları uygulayın:
- Belirli
anahtar deposuna gidin. (Yönlendirici ve hedef uç nokta için sanal ana makine yapılandırmasına bakın
yapılandırması için de geçerlidir.) Aşağıdaki API'leri kullanarak
hakkında daha fazla bilgi edinin:
-
Anahtar deposundan sertifika adını alın:
curl -v https://management-server-ip:port/v1/organizations/org-name/environments/env-name/keystores/keystore-name/certs
-
Anahtar deposunda sertifika ayrıntılarını alın:
curl -v https://management-server-ip:port/v1/organizations/org-name/environments/env-name/keystores/keystore-name/certs/cert-name
-
Anahtar deposundan sertifika adını alın:
- Sertifikanın Yönlendiricinin anahtar deposunda (kuzey yönlü) veya
İleti İşleyici (güneye giden),
veya hedef sunucu (güneye) veya
tcpdump
çıkışından elde edildi. Uyuşmazlık varsa SSL'nin nedeni budur. el sıkışma hatası.
- Belirli
anahtar deposuna gidin. (Yönlendirici ve hedef uç nokta için sanal ana makine yapılandırmasına bakın
yapılandırması için de geçerlidir.) Aşağıdaki API'leri kullanarak
hakkında daha fazla bilgi edinin:
- Sunucu/istemci tarafından gönderilen sertifikanın süresinin dolduğu tespit edilirse,
istemci/sunucu sertifikayı reddeder ve
tcpdump
:Uyarı (Seviye: Önemli, Açıklama: Sertifikanın süresi doldu)
- Uygun ana makinenin anahtar deposundaki sertifikanın süresinin dolduğunu doğrulayın.
Çözünürlük
Yukarıdaki örnekte tanımlanan sorunu çözmek için geçerli arka uç sunucusunun güvenene bildirmeyi unutmayın.
Aşağıdaki tabloda sorun.
Neden | Açıklama | Çözüm |
Süresi Dolmuş Sertifika |
NorthBound
|
Yeni bir sertifikayı ve tüm zincirini uygun sertifikadaki anahtar deposuna yükleyin ana bilgisayar. |
SouthBound
|
Yeni bir sertifikayı ve tüm zincirini uygun sertifikadaki anahtar deposuna yükleyin ana bilgisayar. | |
Bilinmeyen Sertifika |
NorthBound
|
Geçerli sertifikayı uygun ana makinedeki güven deposuna yükleyin. |
SouthBound
|
Geçerli sertifikayı uygun ana makinedeki güven deposuna yükleyin. |
SNI Etkin Sunucu
İstemci bir Sunucuyla iletişim kurarken TLS/SSL el sıkışma hatası ortaya çıkabilir Ad Göstergesi (SNI) Etkin Sunucu ancak istemcide SNI etkin değil. Bu, kuzey ucunda da olabilir, güneye doğru bağlantımız var.
Öncelikle, kullanılan sunucunun ana makine adını ve bağlantı noktası numarasını tanımlamanız ve bu bilgilerin doğru olup olmadığını kontrol etmeniz gerekir. olup olmadığını kontrol edin.
SNI'nin etkin olduğu sunucunun kimliği
openssl
komutunu yürütün ve ilgili sunucu ana makine adına (Edge) bağlanmayı deneyin Yönlendirici veya arka uç sunucusu) sunucu adını iletmeden, aşağıda gösterildiği gibi: Sertifikaları alabilirsiniz ve bazen Aşağıdaki gibi opensl komutunu girin:openssl s_client -connect hostname:port
CONNECTED(00000003) 9362:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-64.50.6/src/ssl/s23_clnt.c:593
openssl
komutunu yürütün ve ilgili sunucu ana makine adına bağlanmayı deneyin (ucuz yönlendirici veya arka uç sunucusu) aşağıdaki gibi sunucu adını ileterek:openssl s_client -connect hostname:port -servername hostname
- 1. adımda bir el sıkışma hatası veya 1. adımda farklı sertifikalar alırsanız 2. adıma ayarlanırsa, belirtilen sunucuda SNI'nin etkin olduğu belirtilir.
Sunucuda SNI'nin etkin olduğunu belirledikten sonra, aşağıdaki adımları uygulayarak TLS/SSL el sıkışma hatasının, istemcinin kontrol eder.
Teşhis
- Hatanın kuzey sınırında mı yoksa Güneye giden bağlantı. Bu konuda daha fazla yardım almak için belirlemek için Sorunun kaynağını belirlemek.
-
tcpdump yardımcı programını sunar:
- Private Cloud kullanıcısıysanız
tcpdump
verilerini toplayabilirsiniz. sunucudaki tüm verileri toplamanızı sağlar. İstemci, istemci uygulaması olabilir (gelen, veya kuzeye giden bağlantılar) ya da İşlemci (giden veya güneye giden bağlantılar için). Sunucu, uç yönlendirici olabilir ( gelen veya kuzeye giden bağlantılar) ya da arka uç sunucusuna (giden veya güneye giden bağlantılar için) otomatik olarak yeniden adlandırılacak. - Herkese açık Cloud kullanıcısıysanız
tcpdump
verilerini toplayabilirsiniz. yalnızca istemci uygulamasında (gelen veya kuzeye giden bağlantılar için) ya da arka uç sunucusunda veriler (giden veya güneye giden bağlantılar için), veya İleti İşlemcisi'ne erişimi yoktur.
Görüntüleyin tcpdump verileri içintcpdump -i any -s 0 host IP address -w File name
tcpdump
komutunu kullanma hakkında daha fazla bilgi edinin. - Private Cloud kullanıcısıysanız
tcpdump
çıkışını Wireshark veya kullanabilirsiniz.- Wireshark kullanılarak
tcpdump
örneğinin analizi aşağıda verilmiştir:- Bu örnekte, Edge İletisi ile arasında gerçekleşen TLS/SSL el sıkışma hatası İşlemci ve arka uç sunucusu (güneye giden bağlantı).
- Aşağıdaki
tcpdump
çıkışında yer alan 4. mesajda, İleti İşleyen (kaynak) "Müşteri Merhaba" arka uç sunucusuna (hedef) mesaj göndermelidir. - "Müşteri Hello"yu seçme Mesaj, Mesajın İşlemci, TLSv1.2 protokolünü kullanıyor.
- 4. mesaj, arka uç sunucusunun "Client Hello"yu onayladığını gösterir mesaj seçmeniz gerekir.
- Arka uç sunucusu hemen bir Önemli Uyarı : El Sıkışma gönderir İleti İşleyen: hata [mesaj 5]. Bu, TLS/SSL el sıkışması anlamına gelir. başarısız oldu ve bağlantı kapatılacak.
- Aşağıdaki bilgileri keşfetmek için 6 numaralı mesajı inceleyin
- Arka uç sunucusu TLSv1.2 protokolünü destekliyor. Bu, protokolün arka uç sunucusu ile eşleştirilmesi gerekir.
- Ancak arka uç sunucusu Önemli Uyarı: El Sıkışma'yı göndermeye devam eder. Mesaj İşleyici'nin aşağıdaki şekilde gösterildiği gibi başarısız olması:
- Bu hatanın nedeni aşağıdakilerden biri olabilir:
- İleti İşleyen, arka uç sunucusuna gidin.
- Arka uç sunucusunda SNI etkin ancak istemci uygulama göndermiyor girin.
tcpdump
çıkışındaki 3. mesajı (Müşteri Hello) daha ayrıntılı bir şekilde inceleyin. Lütfen Uzantı: server_name (aşağıda gösterildiği gibi) eksik:- Bu, İletiyi İşleyen’in server_name parametresini SNI özellikli arka uç sunucuya gönderin.
- TLS/SSL el sıkışma hatasının ve arka ucun , İletiye Kritik Uyarı: El Sıkışma Hatası'nı gönderir. İşleyen.
- içindeki
jsse.enableSNIExtension property
öğesinin geçerli olduğunu doğrulayınsystem.properties
, İleti İşleyen'de false (yanlış) değerine ayarlanır. İleti İşleyici, SNI özellikli sunucuyla iletişim kurmak için etkinleştirilmedi.
Çözünürlük
şu adımları uygulayın:
/opt/apigee/customer/application/message-processor.properties
oluşturun dosyası (mevcut değilse).- Aşağıdaki satırı bu dosyaya ekleyin:
conf_system_jsse.enableSNIExtension=true
. - Bu dosyanın sahibini
apigee:apigee
adlı kullanıcıya atayın:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Mesaj İşleyici'yi yeniden başlatın.
/opt/apigee/apigee-service/bin/apigee-service message-processor restart
- Birden fazla Mesaj İşleyiciniz varsa tüm mesajlarda 1'den 4'e kadar olan adımları Mesaj İşleyiciler.
TLS/SSL El Sıkışma hatasının nedenini belirleyemiyorsanız
veya daha fazla yardıma ihtiyacınız olursa
Apigee Edge Desteği. Sorunla ilgili tüm ayrıntıları aşağıdaki adresle paylaşın:
tcpdump
çıkışı.