Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Sunucu Adı Göstergesi (SNI), arka uç sunucularının aynı TLS sertifikasını kullanmasına gerek kalmadan birden fazla HTTPS arka uç sunucusunun aynı IP adresi ve bağlantı noktasından sunulmasına olanak tanır. TLS protokolünün bir uzantısıdır. Bir istemcide SNI etkinleştirildiğinde istemci, başlangıçtaki TLS el sıkışmasının bir parçası olarak arka uç sunucusunun ana makine adını iletir. Bu sayede TLS sunucusu, istemciden gelen isteği doğrulamak için hangi TLS sertifikasının kullanılması gerektiğini belirleyebilir.
Varsayılan olarak SNI, mevcut arka uç sunucularıyla geriye dönük uyumluluk sağlamak amacıyla Private Cloud için Edge'deki Mesaj İşleyici bileşeninde devre dışı bırakılır. Arka uç sunucunuz SNI'yı destekleyecek şekilde yapılandırılmışsa Mesaj İşleyici bileşeninde SNI'yı etkinleştirmeniz gerekir. Aksi takdirde, Apigee Edge üzerinden geçen API istekleri TLS El Sıkışma Hataları nedeniyle başarısız olur.
Bu dokümanda, aşağıdakilerin nasıl yapılacağı açıklanmaktadır:
- Bir arka uç sunucusunun SNI'nın etkin olup olmadığını belirleme
- SNI'yı destekleyen arka uç sunucularıyla iletişim kurmak için Mesaj İşleyicilerinde SNI'yı etkinleştirin
- Gerekirse Mesaj İşleyicilerinde SNI'yı devre dışı bırakın
- Mesaj İşleyicilerinde SNI yapılandırmasının başarıyla güncellendiğini doğrulayın
Başlamadan önce
- SNI hakkında bilginiz yoksa SNI'yı uç ile kullanma bölümünü okuyun.
- Edge'i Private Cloud'da yapılandırmaya aşina değilseniz Edge'yi yapılandırma bölümünü okuyun.
SNI etkin sunucunun tanımı
Bu bölümde, bir arka uç sunucusunun SNI'nın etkin olup olmadığının nasıl belirleneceği açıklanmaktadır.
-
openssl
komutunu yürütün ve aşağıda gösterildiği gibi, sunucu adını iletmeden ilgili sunucu ana makine adına (Edge Router veya arka uç sunucusu) bağlanmayı deneyin:openssl s_client -connect hostname:port
-
Sertifikaları alabilirsiniz ve bazen aşağıda gösterildiği gibi
openssl
komutunda el sıkışma hatasını gözlemleyebilirsiniz:
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 aşağıda gösterildiği gibi sunucu adını ileterek ilgili sunucu ana makine adına (Edge yönlendirici veya arka uç sunucusu) bağlanmayı deneyin:openssl s_client -connect hostname:port -servername hostname
- 1. adımda el sıkışma hatası alırsanız veya 1. adımda ve 2. adımda farklı sertifikalar alırsanız bu, Sunucunun SNI'nın etkin olduğunu gösterir.
- Bunu birden fazla arka uç sunucusu için doğrulamak istiyorsanız yukarıdaki adımları her arka uç sunucusu için tekrarlamanız gerekir.
SNI etkin olan bir veya daha fazla arka uç sunucunuz varsa Mesaj İşleyici bileşeninde SNI'yı aşağıda açıklandığı gibi etkinleştirmeniz gerekir. Aksi takdirde, Apigee Edge üzerinden geçen API istekleri TLS El Sıkışma Hataları nedeniyle başarısız olur.
Uç Mesaj İşleyicileri ve arka uç sunucusu arasında SNI'yı etkinleştir
Bu bölümde, Edge Mesaj İşleyici ile arka uç sunucusu arasında SNI'nın nasıl etkinleştirileceği açıklanmaktadır. SNI, Mesaj İşleyici bileşenindeki jsse.enableSNIExtension
özelliği aracılığıyla etkinleştirilebilir. Mesaj İşleyici'de herhangi bir özelliği yapılandırmak için jetonu Edge'yi yapılandırma bölümünde açıklanan söz dizimine göre kullanın.
İleti İşleyicilerinde SNI'yı etkinleştirmek için aşağıdaki adımları uygulayın:
jsse.enableSNIExtension
mülkünün jetonunu bulun
Aşağıdaki adımlarda jsse.enableSNIExtension
mülkü için jetonun nasıl bulunacağı açıklanmaktadır:
-
Aşağıdaki komutu kullanarak Mesaj İşleyicisi kaynak dizininde
/opt/apigee/edge-message-processor/source
jsse.enableSNIExtension
özelliğini arayın:grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
-
Bu komutun sonucunda, Mesaj İşleyici'nin
jsse.enableSNIExtension
özelliği için jeton aşağıdaki gibi gösterilir:/opt/apigee/edge-message-processor/source/conf/system.properties:jsse.enableSNIExtension={T}conf_system_jsse.enableSNIExtension{/T}
Burada
{T}{/T}
etiketleri arasındaki dize, İleti İşleyici'nin.properties
dosyasında ayarlayabileceğiniz jetonun adıdır.Dolayısıyla,
jsse.enableSNIExtension
mülkünün jetonu aşağıdaki gibidir:conf_system_jsse.enableSNIExtension
Mesaj İşleyicide SNI'yı etkinleştir
Aşağıdaki adımlarda, Apigee Message Processor bileşeninde SNI'nın nasıl etkinleştirileceği açıklanmaktadır.
- Message Processor makinesinde, aşağıdaki dosyayı bir düzenleyicide açın. Henüz yoksa oluşturun.
/opt/apigee/customer/application/message-processor.properties
Örneğin, dosyayı
vi
kullanarak açmak için aşağıdaki komutu girin:vi /opt/apigee/customer/application/message-processor.properties
-
Özellikler dosyasına aşağıdaki biçimde bir satır ekleyin:
conf_system_jsse.enableSNIExtension=true
- Değişikliklerinizi kaydedin.
-
Aşağıda gösterildiği gibi, bu mülkler dosyasının
apigee
kullanıcısına ait olduğundan emin olun:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
Mesaj İşleyici'yi aşağıda gösterildiği gibi yeniden başlatın:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Mesaj İşleyici'de SNI yapılandırmasının güncellendiğini doğrulayın.
- Birden fazla Mesaj İşleyiciniz varsa yukarıdaki adımları tüm Mesaj İşleyicileri için tekrarlayın.
Uç Mesaj İşleyicileri ve arka uç sunucusu arasında SNI'yı devre dışı bırak
SNI etkinleştirildikten sonra genellikle herhangi bir sorunla karşılaşmazsınız. Ancak SNI'yı etkinleştirdikten sonra Edge Mesaj İşleyicisi ile arka uç sunucusu arasında bağlantı sorunu gözlemlerseniz aşağıdaki adımları uygulayarak SNI'yı dilediğiniz zaman devre dışı bırakabilirsiniz.
SNI, Mesaj İşleyici bileşeninde jsse.enableSNIExtension
özelliğinin tekrar false
değerine ayarlanmasıyla devre dışı bırakılabilir.
Mesaj İşleyicilerinde SNI'yı devre dışı bırak
Aşağıdaki adımlarda, Apigee Mesaj İşlemcilerinde SNI'nın nasıl devre dışı bırakılacağı açıklanmaktadır.
-
Message Processor makinesinde, aşağıdaki dosyayı bir düzenleyicide açın. Henüz yoksa oluşturun.
/opt/apigee/customer/application/message-processor.properties
Örneğin, dosyayı
vi
kullanarak açmak için aşağıdaki komutu girin:vi /opt/apigee/customer/application/message-processor.properties
-
conf_system_jsse.enableSNIExtension=true
satırı/opt/apigee/customer/application/message-processor.properties
içinde bulunuyorsa bu satırı aşağıdaki gibi değiştirin:conf_system_jsse.enableSNIExtension=false
- Değişikliklerinizi kaydedin.
-
Aşağıda gösterildiği gibi, bu mülkler dosyasının
apigee
kullanıcısına ait olduğundan emin olun:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
Mesaj İşleyici'yi aşağıda gösterildiği gibi yeniden başlatın:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Mesaj İşleyici'de SNI yapılandırmasının güncellendiğini doğrulayın.
- Birden fazla Mesaj İşleyiciniz varsa tüm Mesaj İşleyiciler için yukarıdaki adımları tekrarlayın.
Mesaj İşlemcilerinde SNI Yapılandırmasını Doğrulama
Bu bölümde, SNI yapılandırmasının Mesaj İşleyicilerde başarıyla güncellendiğinin nasıl doğrulanacağı açıklanmaktadır.
Mesaj İşleyicide SNI'yı yapılandırmak için conf_system_jsse.enableSNIExtension
jetonunu kullansanız bile jsse.enableSNIExtension
gerçek özelliğinin yeni değerle ayarlandığını doğrulamanız gerekir.
-
Mesaj İşleyici makinesinde,
/opt/apigee/edge-message-processor/conf
dizinindejsse.enableSNIExtension
özelliğini arayın ve aşağıda gösterildiği gibi yeni değerle ayarlanıp ayarlanmadığını kontrol edin:grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
-
SNI yapılandırması Mesaj İşleyici'de başarıyla güncellenirse yukarıdaki komut
system.properties
dosyasındaki yeni değeri gösterir.Mesaj İşleyici'de SNI'yı etkinleştirdikten sonra yukarıdaki komuttan alınan örnek sonuç aşağıdaki gibidir:
/opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=true
Benzer şekilde, Mesaj İşleyici'de SNI'yı devre dışı bıraktıktan sonra yukarıdaki komuttan alınan örnek sonuç aşağıdaki gibidir:
/opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=false
Yukarıdaki örnek çıkışta,
jsse.enableSNIExtension
özelliğininsystem.properties
içindeki yenitrue
veyafalse
değerine güncellendiğini unutmayın. Bu, SNI'nın Mesaj İşleyici'de başarıyla etkinleştirildiğini veya devre dışı bırakıldığını belirtir. -
jsse.enableSNIExtension
özelliğinin eski değerini görmeye devam ediyorsanız SNI'yı doğru şekilde etkinleştirmek veya devre dışı bırakmak için ilgili bölümde açıklanan tüm adımları uyguladığınızdan emin olun. Herhangi bir adımı atladıysanız tüm adımları doğru bir şekilde tekrar edin. - SNI'yı hâlâ etkinleştiremiyor/devre dışı bırakamıyorsanız Apigee Edge Desteği ile iletişime geçin.