Edge Message Processor ve arka uç sunucu arasında SNI yapılandırma

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:

Başlamadan önce

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.

  1. 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
    
  2. 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
    
  3. 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
    
  4. 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.
  5. 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:

  1. jsse.enableSNIExtension mülkünün jetonunu bulma
  2. Mesaj İşleyicide SNI'yı etkinleştir

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:

  1. 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
    
  2. 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.

  1. 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
    

  2. Özellikler dosyasına aşağıdaki biçimde bir satır ekleyin:
    conf_system_jsse.enableSNIExtension=true
    
  3. Değişikliklerinizi kaydedin.
  4. 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
    
  5. 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
    
  6. Mesaj İşleyici'de SNI yapılandırmasının güncellendiğini doğrulayın.
  7. 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.

  1. 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
    

  2. 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
    
  3. Değişikliklerinizi kaydedin.
  4. 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
    
  5. 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
    
  6. Mesaj İşleyici'de SNI yapılandırmasının güncellendiğini doğrulayın.
  7. 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.

  1. Mesaj İşleyici makinesinde, /opt/apigee/edge-message-processor/conf dizininde jsse.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
    
  2. 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ğinin system.properties içindeki yeni true veya false 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.

  3. 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.
  4. SNI'yı hâlâ etkinleştiremiyor/devre dışı bırakamıyorsanız Apigee Edge Desteği ile iletişime geçin.