SNI'yi Edge ile kullanma

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Sunucu Adı Göstergesi (SNI), hedeflerin aynı TLS sertifikasını kullanmasına gerek kalmadan birden fazla HTTPS hedefinin aynı IP adresi ve bağlantı noktasından sunulmasına olanak tanır. Bir istemcide SNI etkinleştirildiğinde istemci, başlangıçtaki TLS el sıkışmasının bir parçası olarak hedef uç noktanın ana makine adını iletir. Bu sayede TLS sunucusu, isteği doğrulamak için hangi TLS sertifikasının kullanılması gerektiğini belirleyebilir.

Örneğin, istek hedefi https://example.com/request/path ise TLS istemcisi, server_name uzantısını aşağıda gösterildiği gibi TLS el sıkışma isteğine ekler:

Edge, aşağıdakiler için SNI'yı destekler:

  • Bir istemci uygulamasından API proxy'sine gönderilen istekler. Bu senaryoda Edge, TLS sunucusu görevi görür
  • Uçtan arka uca istekler. Bu senaryoda Edge, TLS istemcisi olarak davranır.

SNI hakkında daha fazla bilgi için bkz:

Uçta API proxy'sine yapılan istek için SNI desteği

API proxy'lerine yapılan istekler için SNI desteği, ana makine takma adları ve sanal ana makineler tarafından kontrol edilir.

Sanal ana makineler ve ana makine takma adları hakkında

Edge ile sanal ana makine, API proxy'sinin açığa çıktığı IP adresini ve bağlantı noktasını veya DNS adını ve bağlantı noktasını tanımlar. Buna ek olarak, uygulamaların API proxy'sine erişmek için kullandığı URL'yi de tanımlar. IP adresi/DNS adı, Uç Yönlendirici'ye karşılık gelir. Bağlantı noktası numarası ise Yönlendirici'de açık bir bağlantı noktasıdır.

Sanal ana bilgisayarı oluştururken sanal ana makinenin ana makine takma adını da belirtirsiniz. Genellikle bu, sanal ana makinenin DNS adıdır. Yönlendirici, isteği işleyen API proxy'sini belirlemenin bir parçası olarak gelen isteğin Host başlığını, tüm sanal ana makineler tarafından tanımlanan kullanılabilir ana makine takma adları listesiyle karşılaştırır.

Sanal ana makine için ana makine takma adı ve bağlantı noktası numarası kombinasyonu, Edge kurulumundaki tüm sanal ana makineler için benzersiz olmalıdır. Yani farklı ana makine takma adlarına sahip birden fazla sanal ana makine aynı bağlantı noktası numarasını kullanabilir.

Sanal ana makine, API proxy'sine HTTP protokolü kullanılarak mı yoksa TLS kullanan şifrelenmiş HTTPS protokolü aracılığıyla mı erişildiğini tanımlar. Bir sanal ana makineyi HTTPS kullanacak şekilde yapılandırırken, sanal ana makineyi, TLS el sıkışma sırasında sanal ana makine tarafından kullanılan sertifikayı ve özel anahtarı içeren bir anahtar deposuyla ilişkilendirin.

Sanal ana makineler hakkında daha fazla bilgi edinmek için aşağıdaki makalelere bakın:

SNI, ana makine takma adlarıyla nasıl çalışır?

SNI, aynı bağlantı noktasında tanımlanmış birden fazla sanal ana makinenin farklı TLS sertifikalarına ve anahtarlarına sahip olmasına olanak tanır. Daha sonra Edge, TLS el sıkışma isteğindeki server_name uzantısına göre sanal ana makineyi ve TLS tarafından kullanılan sertifika/anahtar çiftini belirler.

Uç Yönlendirici, TLS el sıkışma isteğinde server_name uzantısını okur ve daha sonra bunu tüm sanal ana makinelerden gelen ana makine takma adlarına göre arama yapmak için kullanır. Yönlendirici, bir ana makine takma adıyla eşleşme algılarsa yönlendirici, ana makine takma adıyla ilişkilendirilen sanal ana makineden TLS sertifikasını ve anahtarını kullanır. Eşleşme bulunmazsa TLS el sıkışma işlemi başarısız olur.

TLS el sıkışma işleminin başarısız olması yerine sonraki bölümlerde açıklandığı şekilde varsayılan bir sertifika/anahtar çifti tanımlayabilirsiniz.

Cloud için Edge'de varsayılan sertifika/anahtar çifti tanımlama

Apigee, HTTPS'yi desteklemek için TLS sertifikası ve özel anahtar sağlar. Birçok müşteri dağıtım sırasında kendi sertifikasını ve özel anahtarını kullanmayı tercih etse de API'lerinizi Apigee sertifikası ve anahtarını kullanarak dağıtabilirsiniz.

Cloud için Edge'de Yönlendirici, SNI başlığını bir ana makine takma adıyla eşleştiremiyorsa veya istemci SNI'yı desteklemiyorsa Yönlendirici, Apigee tarafından sağlanan varsayılan sertifikayı (*.Apigee.net) kullanır.

Private Cloud için Edge'de varsayılan sertifika/anahtar çifti tanımlama

Private Cloud için Edge'de, server_name uzantısı ile tüm sanal ana makinelerdeki ana makine takma adları arasında eşleşme bulunamazsa veya istekte bulunan istemci SNI'yı desteklemiyorsa Yönlendiriciyi bağlantı noktasındaki varsayılan bir sanal ana makinenin sertifikasını/anahtarını kullanacak şekilde yapılandırabilirsiniz. Varsayılan sanal ana makine; kuruluş adı, ortam adı ve sanal ana makine adının bir kombinasyonuyla şu biçimde tanımlanır:

orgName_envName_vhName

Yönlendirici, alfabetik sırayla ilk gelen orgName_envName_vhName kombinasyonundan alınan sertifikayı/anahtarı kullanır. Örneğin, istek 443 numaralı bağlantı noktasında gelir ve prod ortamında example kuruluşu için tanımlanmış iki sanal ana makine vardır:

  • sanal ana makine adı = default
  • sanal ana makine adı = test

Bu örnekte, example_prod_default alfabetik olarak example_prod_test'den önce geldiği için Yönlendirici, default adlı sanal ana makinenin sertifikasını/anahtarını kullanır.

Varsayılan sanal ana makineyi etkinleştirmek için:

  1. İlk Yönlendirici düğümünde /opt/apigee/customer/application/router.properties alanını düzenleyin. Böyle bir dosya yoksa oluşturun.
  2. Varsayılan sanal ana makine tanımlayabilmeniz için dosyaya aşağıdaki özelliği ekleyin:
    conf_load_balancing_load.balancing.driver.nginx.fallback.conf.enabled=true
  3. Yönlendiriciyi yeniden başlatın:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  4. Kalan tüm Yönlendiricilerde bu adımları tekrarlayın.

Varsayılan sanal ana makinenin sertifikasını/anahtarını kullanmak yerine, Yönlendiricide varsayılan sertifikayı/anahtarı açıkça tanımlayabilirsiniz. Açık bir varsayılan sertifika/anahtar çifti tanımlamak için aşağıdaki prosedürü kullanın:

  1. İlk Yönlendirici düğümünde, sertifikayı ve özel anahtarı, Yönlendirici düğümündeki Apigee kullanıcısı tarafından erişilebilen bir konuma kopyalayın. Örneğin, /opt/apigee/customer/application.
  2. Dosyaların sahipliğini 'Apigee. kullanıcısı olarak değiştirin:
    chown apigee:apigee /opt/apigee/customer/application/myCert.pem
    chown apigee:apigee /opt/apigee/customer/application/myKey.pem
  3. /opt/apigee/customer/application/router.properties öğesini düzenle. Böyle bir dosya yoksa oluşturun.
  4. Varsayılan sertifikayı/anahtarı belirtebilmek için dosyaya aşağıdaki özellikleri ekleyin:
    conf_load_balancing_load.balancing.driver.nginx.fallback.server.default.ssl.template.enabled=true
    conf_load_balancing_load.balancing.driver.nginx.fallback.conf.enabled=true
  5. Sertifikanın ve anahtarın konumunu belirtmek için router.properties içinde aşağıdaki özellikleri ayarlayın:
    conf_load_balancing_load.balancing.driver.nginx.ssl.cert=/opt/apigee/customer/application/myCert.pem
    conf_load_balancing_load.balancing.driver.nginx.ssl.key=/opt/apigee/customer/application/myKey.pem
  6. Yönlendiriciyi yeniden başlatın:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  7. Kalan tüm Yönlendiricilerde bu adımları tekrarlayın.

Edge'den arka uca yapılan istekler için SNI'yı destekleme

Edge, Cloud ve Özel Bulut dağıtımları için Apigee Edge'deki uç noktaları hedeflemek amacıyla Mesaj İşleyicilerden SNI kullanımını destekler. SNI, varsayılan olarak Cloud için Edge Mesaj İşleyicilerinde etkin, Private Cloud'da ise devre dışıdır.

Private Cloud için Edge'de arka uca SNI kullanma

Apigee, Private Cloud için Edge'in mevcut hedef arka uçlarla geriye dönük uyumlu olmasını sağlamak amacıyla SNI'yı varsayılan olarak devre dışı bırakmıştır. Hedef arka ucunuz SNI'yı destekleyecek şekilde yapılandırılmışsa bu özelliği aşağıda açıklandığı gibi Edge sürümünüz için etkinleştirebilirsiniz.

Edge'e özel başka yapılandırma gerekmez. Hedef ortamınız SNI için yapılandırılmışsa Edge bunu destekler. Edge, istek URL'sinden ana makine adını otomatik olarak çıkarır ve bunu TLS el sıkışma isteğine ekler.

Edge 4.15.07.0x sürümü için Edge ve arka uç arasında SNI'yı etkinleştirin

SNI'yı etkinleştirmek için aşağıdaki prosedürü kullanın:

  1. İlk Mesaj İşleyici düğümünde /opt/apigee4/conf/apigee/message-processor/system.properties dosyasını bir düzenleyicide açın.
  2. system.properties özelliğinde aşağıdaki özelliği "true" (doğru) olarak ayarlayın:
    jsse.enableSNIExtension=true
  3. Mesaj İşleyicileri yeniden başlatın:
    /opt/apigee4/bin/apigee-service message-processor restart
  4. Diğer tüm Mesaj İşleyiciler için bu adımları tekrarlayın.

Edge 4.16.01 ve sonraki sürümler için Edge ve arka uç arasında SNI'yı etkinleştirin

SNI'yı etkinleştirmek için aşağıdaki prosedürü kullanın:

  1. İlk İleti İşleyici düğümünde /opt/apigee/customer/application/message-processor.properties öğesini düzenleyin. Böyle bir dosya yoksa oluşturun.
  2. Dosyaya aşağıdaki özelliği ekleyin:
    conf_system_jsse.enableSNIExtension=true
  3. Mesaj İşleyici'yi yeniden başlatın:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  4. Diğer tüm Mesaj İşleyiciler için bu adımları tekrarlayın.