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), birden fazla HTTPS arka uç sunucusunun aynı IP adresi ve bağlantı noktası üzerinden sunulmasına olanak tanır. Bu arka uç sunucularının aynı TLS sertifikasını kullanması gerekmez. Bu, TLS protokolünün bir uzantısıdır. SNI bir istemcide etkinleştirildiğinde istemci, ilk TLS el sıkışmasının bir parçası olarak arka uç sunucusunun ana makine adını iletir. Bu, TLS sunucusunun istemciden gelen isteği doğrulamak için hangi TLS sertifikasının kullanılması gerektiğini belirlemesine olanak tanır.

SNI, mevcut arka uç sunucularla geriye dönük uyumluluğu sağlamak için varsayılan olarak Özel Bulut için Edge'deki Mesaj İşleyici bileşeninde devre dışıdı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ışması hataları ile başarısız olur.

Bu belgede aşağıdakilerin nasıl yapılacağı açıklanmaktadır:

Başlamadan önce

  • SNI hakkında bilginiz yoksa Using SNI with edge (SNI'yı Edge ile kullanma) başlıklı makaleyi okuyun.
  • Özel bulutta Edge'i yapılandırma konusunda bilginiz yoksa Edge'i yapılandırma başlıklı makaleyi okuyun.

SNI etkin sunucunun tanımlanması

Bu bölümde, bir arka uç sunucusunda SNI'nın etkin olup olmadığını nasıl belirleyeceğiniz açıklanmaktadır.

  1. openssl komutunu çalıştırı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ğıdaki örnekte gösterildiği gibi openssl komutunda el sıkışma hatası görebilirsiniz:
    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 çalıştırın ve aşağıdaki örnekte 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. ve 2. adımda farklı sertifikalar alırsanız, belirtilen sunucuda SNI'nın etkin olduğu anlaşılır.
  5. Bu işlemi birden fazla arka uç sunucusu için doğrulamak istiyorsanız her arka uç sunucusu için yukarıdaki adımları tekrarlamanız gerekir.

SNI'nın etkinleştirildiği bir veya daha fazla arka uç sunucunuz olduğunu fark ederseniz aşağıda açıklandığı gibi Mesaj İşleyici bileşeninde SNI'yı etkinleştirmeniz gerekir. Aksi takdirde, Apigee Edge üzerinden geçen API istekleri TLS el sıkışması hataları ile başarısız olur.

Edge Message Processors ile arka uç sunucusu arasında SNI'yı etkinleştirme

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 üzerinden etkinleştirilebilir. Mesaj İşleyici'deki herhangi bir özelliği yapılandırmak için Edge'i yapılandırma bölümünde açıklanan söz dizimine göre jetonu kullanın.

SNI'yı ileti işlemcilerinde etkinleştirmek için aşağıdaki adımları uygulayın:

  1. jsse.enableSNIExtension özelliği için jetonu bulma
  2. Mesaj İşleyicisinde SNI'yı etkinleştirme

jsse.enableSNIExtension mülkü için jetonu bulma

Aşağıdaki adımlarda, jsse.enableSNIExtension mülkünün jetonunun nasıl bulunacağı açıklanmaktadır:

  1. Aşağıdaki komutu kullanarak Mesaj İşleyici kaynak dizininde jsse.enableSNIExtension özelliğini arayın:/opt/apigee/edge-message-processor/source
    grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
  2. Bu komutun çıktısı, Message Processor'ın mülkü için jetonu aşağıdaki gibi gösterir: jsse.enableSNIExtension
    /opt/apigee/edge-message-processor/source/conf/system.properties:jsse.enableSNIExtension={T}conf_system_jsse.enableSNIExtension{/T}

    {T}{/T} etiketleri arasındaki dize, Message Processor'ın .properties dosyasında ayarlayabileceğiniz jetonun adıdır.

    Bu nedenle, jsse.enableSNIExtension özelliği için jeton şu şekildedir:

    conf_system_jsse.enableSNIExtension

Mesaj işleyicide SNI'yı etkinleştirme

Aşağıdaki adımlarda, Apigee Mesaj İşleyici bileşeninde SNI'nın nasıl etkinleştirileceği açıklanmaktadır.

  1. Mesaj İşleyici 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. Bu özellikler dosyasının, aşağıda gösterildiği gibi 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. SNI yapılandırmasının Mesaj İşleyici'de güncellendiğini doğrulayın.
  7. Birden fazla Mesaj İşleyiciniz varsa yukarıdaki adımları tüm Mesaj İşleyicilerde tekrarlayın.

Edge Message Processors ile arka uç sunucusu arasındaki SNI'yı devre dışı bırakma

Genellikle SNI'yı etkinleştirdikten sonra herhangi bir sorunla karşılaşmazsınız. Ancak, SNI'yı etkinleştirdikten sonra Edge Mesaj İşleyici ile arka uç sunucusu arasında bağlantı sorunları yaşarsanız aşağıdaki adımları uygulayarak SNI'yı devre dışı bırakabilirsiniz.

SNI, Mesaj İşleyici bileşeninde jsse.enableSNIExtension özelliğini tekrar false olarak ayarlayarak devre dışı bırakılabilir.

İleti işlemcilerinde SNI'yı devre dışı bırakma

Aşağıdaki adımlarda, Apigee Message Processors'da SNI'nın nasıl devre dışı bırakılacağı açıklanmaktadır.

  1. Mesaj İşleyici 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 varsa aşağıdaki gibi değiştirin:
    conf_system_jsse.enableSNIExtension=false
  3. Değişikliklerinizi kaydedin.
  4. Bu özellikler dosyasının, aşağıda gösterildiği gibi 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. SNI yapılandırmasının Mesaj İşleyici'de güncellendiğini doğrulayın.
  7. Birden fazla Mesaj İşleyiciniz varsa yukarıdaki adımları tüm Mesaj İşleyicilerde tekrarlayın.

İleti işlemcilerinde SNI yapılandırmasını doğrulama

Bu bölümde, SNI yapılandırmasının Mesaj İşleyiciler'de başarıyla güncellendiğini nasıl doğrulayacağınız açıklanmaktadır.

İleti işlemcisinde SNI'yı yapılandırmak için conf_system_jsse.enableSNIExtension jetonunu kullansanız da gerçek özelliğin jsse.enableSNIExtension 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ğıdaki 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.

    Yukarıdaki komuttan elde edilen örnek sonuç, SNI'yı Mesaj İşleyici'de etkinleştirdikten sonra aşağıdaki gibi görünür:

    /opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=true

    Benzer şekilde, yukarıdaki komuttan elde edilen örnek sonuç, SNI'yı Mesaj İşleyici'de devre dışı bıraktıktan sonra aşağıdaki gibi görünür:

    /opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=false

    Yukarıdaki örnek çıktıda, jsse.enableSNIExtension özelliğinin system.properties içinde yeni değer true veya false olarak 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ı gösterir.

  3. jsse.enableSNIExtension özelliği için hâlâ eski değeri görüyorsanız SNI'yı doğru şekilde etkinleştirmek veya devre dışı bırakmak için ilgili bölümde belirtilen tüm adımları uyguladığınızı doğrulayın. Herhangi bir adımı atladıysanız tüm adımları tekrar doğru şekilde uygulayın.
  4. SNI'yı hâlâ etkinleştiremiyor veya devre dışı bırakamıyorsanız Apigee Edge Destek Ekibi ile iletişime geçin.