Edge'den arka uca TLS'yi yapılandırma (Cloud ve Private Cloud)

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

API proxy'si, herkese açık bir uç noktanın arka uç hizmetinize eşlemesi olarak işlev görür. Sanal ana makine, herkese açık API proxy'sinin bir uygulamada gösterilme şeklini tanımlar. Örneğin, sanal ana makine, API proxy'sine TLS kullanılarak erişilebilir olup olmadığını belirler. API proxy'si yapılandırırken ProxyEndpoint tanımını düzenleyerek API proxy'sinin kullandığı sanal ana makineleri yapılandırın.

TargetEndpoint, ProxyEndpoint'in giden eşdeğeridir. TargetEndpoint, Edge'den arka uç hizmetine HTTP istemcisi olarak işlev görür. API proxy'si oluştururken sıfır veya daha fazla TargetEndpoint kullanacak şekilde yapılandırabilirsiniz.

Daha fazla bilgi:

TargetEndpoint veya TargetServer'ı yapılandırma

Bir TargetEndpoint yapılandırmak üzere TargetEndpoint'i tanımlayan XML nesnesini düzenleyin. API proxy'nizde TargetEndpoint'i tanımlayan XML dosyasını veya Edge yönetim kullanıcı arayüzünde TargetEndpoint'i düzenleyerek TargetEndpoint'i düzenleyebilirsiniz.

TargetEndpoint'i düzenlemek üzere Edge yönetim kullanıcı arayüzünü kullanmak için:

  1. https://enterprise.apigee.com adresinden Edge yönetim kullanıcı arayüzüne giriş yapın.
  2. Güncellenecek API proxy'sinin adını seçin.
  3. Geliştirme sekmesini seçin.
  4. Hedef Uç Noktalar bölümünde varsayılan'ı seçin.
  5. Kod alanında, aşağıdakine benzer şekilde TargetEndpoint tanımı görünür:
    <TargetEndpoint name="default">
      <Description/>
      <FaultRules/>
      <Flows/>
      <PreFlow name="PreFlow">
        <Request/>
        <Response/>
      </PreFlow>
      <PostFlow name="PostFlow">
        <Request/>
        <Response/>
      </PostFlow>
      <HTTPTargetConnection>
        <Properties/>
        <SSLInfo>
          <Enabled>true</Enabled>
          <TrustStore>ref://myTrustStoreRef</TrustStore>
        </SSLInfo>
        <URL>https://mocktarget.apigee.net</URL>
      </HTTPTargetConnection>
    </TargetEndpoint>
  6. Bir güven deposunu aşağıdaki Arka uçla TLS yapılandırması hakkında bölümünde açıklandığı gibi yapılandırın.
  7. Gerekli değişiklikleri yapın ve proxy'yi kaydedin. API proxy'si dağıtılmışsa kaydedildiğinde yeni ayarla yeniden dağıtılır.

TargetEndpoint tanımının bir name özelliği içerdiğine dikkat edin. TargetEndpoint'i kullanmak amacıyla bir API proxy'sinin ProxyEndpoint tanımını yapılandırmak için name özelliğinin değerini kullanırsınız. Daha fazla bilgi için API proxy yapılandırma referansı başlıklı makaleyi inceleyin.

TargetEndpoints, açık hedef URL'ye değil, bir TargetServer'a başvuracak şekilde yapılandırılabilir. TargetServer yapılandırması, somut uç nokta URL'lerini TargetEndpoint yapılandırmalarından ayırır. TargetServer'lar, birden fazla arka uç sunucu örneğinde yük dengeleme ve yük devretmeyi desteklemek için kullanılır.

Aşağıda örnek bir TargetServer tanımı gösterilmektedir:

<TargetServer name="target1">
  <Host>mocktarget.apigee.net</Host>
  <Port>80</Port>
  <IsEnabled>true</IsEnabled>
</TargetServer> 

TargetServer'a, TargetEndpoint tanımındaki <HTTPTargetConnection> öğesindeki adla başvurulur. Aşağıda gösterildiği gibi, bir veya daha fazla adlandırılmış TargetServer yapılandırabilirsiniz.

<TargetEndpoint name="default">
  ...
  <HTTPTargetConnection>
    <LoadBalancer>
      <Server name="target1" />
      <Server name="target2" />
    </LoadBalancer>
    <Path>/test</Path>
  </HTTPTargetConnection>
  ...
</TargetEndpoint>

Daha fazla bilgi için Arka uç sunucular arasında yük dengeleme bölümüne bakın.

Arka uç ile TLS yapılandırması hakkında

Arka uca TLS erişimini yapılandırmadan önce iki önemli noktayı anlamanız gerekir:

  1. Varsayılan olarak Edge, arka uç sertifikasını doğrulamaz. Edge'i sertifikayı doğrulamak amacıyla yapılandırmak için bir güven deposu oluşturmanız gerekir.
  2. Edge tarafından kullanılan anahtar deposunu veya güven deposunu belirtmek için bir referans kullanın.

Her iki husus da aşağıda açıklanmıştır.

Sertifika doğrulamayı etkinleştirmek için güven deposu tanımlama

TargetEndpoint veya TargetServer üzerinden bir TLS isteği gönderirken, Edge varsayılan olarak arka uç sunucudan alınan TLS sertifikasını doğrulamaz . Bu durumda, Edge aşağıdakileri doğrulamaz:

  • Sertifika güvenilir bir CA tarafından imzalanmıştır.
  • Sertifikanın süresi sona ermemiş.
  • Sertifika ortak bir ad sunuyor. Ortak bir ad varsa Edge, ortak adın URL'de belirtilen ana makine adıyla eşleştiğini doğrulamaz.

Edge'i arka uç sertifikasını doğrulayacak şekilde yapılandırmak için şunları yapmanız gerekir:

  1. Edge'de güven deposu oluşturun.
  2. Sunucunun sertifika veya sertifika zincirini güven deposuna yükleyin. Sunucu sertifikası üçüncü bir tarafça imzalanırsa kök CA sertifikası da dahil olmak üzere sertifika zincirinin tamamını güven deposuna yüklemeniz gerekir. Dolaylı olarak güvenilir bir CA yoktur.
  3. Truststore'u TargetEndpoint veya TargetServer tanımına ekleyin.

Daha fazla bilgi için Anahtar Depoları ve Güven Depoları bölümüne bakın.

Örneğin:

<TargetEndpoint name="default">
  …
  <HTTPTargetConnection>
    <SSLInfo>
      <Enabled>true</Enabled>
      <TrustStore>ref://myTrustStoreRef</TrustStore>
    </SSLInfo>
    <URL>https://myservice.com</URL>
  </HTTPTargetConnection>
  …
</TargetEndpoint>

Anahtar deposu veya güven deposu için referans kullanma

Aşağıdaki örnekte, TLS'yi desteklemek için bir TargetEndpoint'in veya TargetServer'ın nasıl yapılandırılacağı gösterilmiştir. TLS'yi yapılandırmanın bir parçası olarak, TargetEndpoint veya TargetServer tanımının parçası olarak bir güven deposu ve anahtar deposu belirtirsiniz.

Apigee, TargetEndpoints veya TargetServer tanımında anahtar deposu ve güven deposuna bir referans kullanmanızı önemle tavsiye eder. Referans kullanmanın avantajı, TLS sertifikasını güncellemek için referansı yalnızca farklı bir anahtar deposuna veya güven deposuna işaret edecek şekilde güncellemenizin gerekmesidir.

TargetEndpoints veya TargetServer tanımındaki anahtar depolarına ve güven depolarına yapılan referanslar, sanal ana makinelerde olduğu gibi çalışır.

Referans kullanmak için TargetEndpoint veya TargetServer dönüştürme

Anahtar deposu ve güven deposunun değişmez adını kullanan mevcut TargetEndpoint veya TargetServer tanımlarınız olabilir. TargetEndpoint veya TargetServer tanımını referansları kullanacak şekilde dönüştürmek için:

  1. Bir referans kullanmak için TargetEndpoint veya TargetServer tanımını güncelleyin.
  2. Edge Mesaj İşlemcilerini yeniden başlatın:
    • Herkese Açık Bulut müşterileri, Mesaj İşleyicileri yeniden başlatmak için Apigee Edge Destek Ekibi ile iletişime geçin.
    • Private Cloud müşterileri için Uç Mesaj İşleyicileri'ni tek tek yeniden başlatın.
  3. TargetEndpoint veya TargetServer'ın doğru şekilde çalıştığını onaylayın.

Arka uç sunucusu için tek yönlü TLS'yi yapılandırma

TargetEndpoint tanımı kullanılırken, Edge'den (TLS istemcisi) arka uç sunucusuna (TLS sunucusu) tek yönlü TLS erişiminin yapılandırılması, Edge'de herhangi bir ek yapılandırma gerektirmez. TLS'nin doğru şekilde yapılandırılması arka uç sunucuya bağlıdır.

Yalnızca TargetEndpoint tanımındaki <URL> öğesinin, HTTPS protokolüyle arka uç hizmetine referans verdiğinden ve TLS'yi etkinleştirdiğinizden emin olmanız gerekir:

<TargetEndpoint name="default">
  …
  <HTTPTargetConnection>
    <SSLInfo>
      <Enabled>true</Enabled>
    </SSLInfo>
    <URL>https://myservice.com</URL>
  </HTTPTargetConnection>
  …
</TargetEndpoint>

Arka uç hizmetini tanımlamak için TargetServer kullanıyorsanız TargetServer tanımında TLS'yi etkinleştirin:

<TargetServer name="target1">
  <Host>mocktarget.apigee.net</Host>
  <Port>443</Port>
  <IsEnabled>true</IsEnabled>
  <SSLInfo>
    <Enabled>true</Enabled>
  </SSLInfo> 
</TargetServer> 

Ancak, Edge'in arka uç sertifikasını doğrulamasını istiyorsanız arka uç sertifikasını veya sertifika zincirini içeren bir güven deposu oluşturmanız gerekir. Daha sonra TargetEndpoint tanımında güven deposunu belirtirsiniz:

<TargetEndpoint name="default">
  …
  <HTTPTargetConnection>
    <SSLInfo>
      <Enabled>true</Enabled>
      <TrustStore>ref://myTrustStoreRef</TrustStore>
    </SSLInfo>
    <URL>https://myservice.com</URL>
  </HTTPTargetConnection>
  …
</TargetEndpoint>

Veya TargetServer tanımında:

<TargetServer name="target1">
  <Host>mockserver.apigee.net</Host>
  <Port>443</Port>
  <IsEnabled>true</IsEnabled>
  <SSLInfo>
    <Enabled>true</Enabled>
    <TrustStore>ref://myTrustStoreRef</TrustStore>
  </SSLInfo> 
</TargetServer>

Tek yönlü TLS'yi yapılandırmak için:

  1. Arka uç sertifikasını doğrulamak istiyorsanız Edge'de bir güven deposu oluşturun ve Keystores and Truststores'da açıklandığı gibi arka uç sertifikasını veya CA zincirini yükleyin. Bu örnekte, bir güven deposu oluşturmanız gerekiyorsa bunu myTrustStore olarak adlandırın.
  2. Bir güven deposu oluşturduysanız yukarıda oluşturduğunuz güven deposuna myTrustStoreRef adlı bir referans oluşturmak için aşağıdaki POST API çağrısını kullanın:

    curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
      -d '<ResourceReference name="myTrustStoreRef">
        <Refers>myTrustKeystore</Refers>
        <ResourceType>KeyStore</ResourceType>
      </ResourceReference>' -u email:password
    
  3. API proxy'sinin TargetEndpoint tanımını güncellemek için Edge yönetim kullanıcı arayüzünü kullanın (veya API proxy'sini XML'de tanımlarsanız proxy için XML dosyalarını düzenleyin):
    1. https://enterprise.apigee.com adresinden Edge yönetim kullanıcı arayüzüne giriş yapın.
    2. Edge yönetim kullanıcı arayüzü menüsünde API'ler seçeneğini belirleyin.
    3. Güncellenecek API proxy'sinin adını seçin.
    4. Geliştirme sekmesini seçin.
    5. Hedef Uç Noktalar bölümünde varsayılan'ı seçin.
    6. Kod alanında, <SSLInfo> öğesini eklemek için <HTTPTargetConnection> öğesini düzenleyin. Doğru güven deposu referansını belirttiğinizden ve <Enabled> değerini doğru olarak ayarladığınızdan emin olun:
      <TargetEndpoint name="default">
        …
        <HTTPTargetConnection>
          <SSLInfo>
            <Enabled>true</Enabled>
            <TrustStore>ref://myTrustStoreRef</TrustStore>
          </SSLInfo>
          <URL>https://myservice.com</URL>
        </HTTPTargetConnection>
        …
      </TargetEndpoint>
    7. API proxy'sini kaydedin. API proxy'si dağıtılmışsa kaydedildiğinde yeni ayarla yeniden dağıtılır.

Arka uç sunucusunda iki yönlü TLS'yi yapılandırma

Edge (TLS istemcisi) ve arka uç sunucusu (TLS sunucusu) arasında iki yönlü TLS'yi desteklemek istiyorsanız:

  • Edge'de bir anahtar deposu oluşturup Edge sertifikasını ve özel anahtarı yükleyin.
  • Arka uç sertifikasını doğrulamak istiyorsanız Edge'de, arka uç sunucudan aldığınız sertifikayı ve CA zincirini içeren bir güven deposu oluşturun.
  • TLS erişimini yapılandırmak için arka uç sunucusuna referans veren API proxy'lerinin TargetEndpoint'ini güncelleyin.

Anahtar deposu sertifikasını belirtmek için anahtar takma adını kullanma

Aynı anahtar deposunda her biri kendi takma adına sahip birden fazla sertifika tanımlayabilirsiniz. Varsayılan olarak Edge, anahtar deposunda tanımlanan ilk sertifikayı kullanır.

Dilerseniz Edge'i <KeyAlias> özelliği ile belirtilen sertifikayı kullanacak şekilde yapılandırabilirsiniz. Bu sayede birden fazla sertifika için tek bir anahtar deposu tanımlayabilir, ardından TargetServer tanımında kullanmak istediğiniz anahtarı seçebilirsiniz. Edge, <KeyAlias> ile eşleşen takma ada sahip bir sertifika bulamazsa anahtar deposundaki ilk sertifikayı seçen varsayılan işlemi kullanır.

Edge for Public Cloud kullanıcıları, bu özelliği etkinleştirmek için Apigee Edge Destek Ekibi ile iletişime geçmelidir.

İki yönlü TLS'yi yapılandırma

İki yönlü TLS'yi yapılandırmak için:

  1. Edge'de anahtar deposunu oluşturun ve şurada açıklanan prosedürü kullanarak sertifika ile özel anahtarı yükleyin: Keystores and Truststores. Bu örnekte, sertifika ve özel anahtar için myKey takma adını kullanan myTestKeystore adlı bir anahtar deposu oluşturun.
  2. Yukarıda oluşturduğunuz anahtar deposuna myKeyStoreRef adlı bir referans oluşturmak için aşağıdaki POST API çağrısını kullanın:

    curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
    -d '<ResourceReference name="myKeyStoreRef">
        <Refers>myTestKeystore</Refers>
        <ResourceType>KeyStore</ResourceType>
    </ResourceReference>' -u email:password
    

    Referans, anahtar deposunun adını ve referans türünü KeyStore olarak belirtir.

    Referansı görüntülemek için aşağıdaki GET API çağrısını kullanın:

    curl -X GET https://api.enterprise.apigee.com/v1/o/[org_name}/e/{env_name}/references/myKeyStoreRef /
    -u email:password
    
  3. Arka uç sertifikasını doğrulamak istiyorsanız Edge'de bir güven deposu oluşturup sertifikayı ve CA zincirini yükleyin. Bunun için Keystores ve Truststores sayfasına gidin. Bu örnek için, bir güven deposu adı oluşturmanız gerekiyorsa myTrustStore olarak adlandırabilirsiniz.
  4. Bir güven deposu oluşturduysanız yukarıda oluşturduğunuz güven deposuna myTrustStoreRef adlı bir referans oluşturmak için aşağıdaki POST API çağrısını kullanın:

    curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
    -d '<ResourceReference name="myTrustStoreRef">
        <Refers>myTrustKeystore</Refers>
        <ResourceType>KeyStore</ResourceType>
    </ResourceReference>' -u email:password
    
  5. API proxy'sinin TargetEndpoint tanımını güncellemek için Edge yönetim kullanıcı arayüzünü kullanın (veya API proxy'sini XML'de tanımlarsanız proxy için XML dosyalarını düzenleyin):
    1. https://enterprise.apigee.com adresinden Edge yönetim kullanıcı arayüzüne giriş yapın.
    2. Edge yönetim kullanıcı arayüzü menüsünde API'ler seçeneğini belirleyin.
    3. Güncellenecek API proxy'sinin adını seçin.
    4. Geliştirme sekmesini seçin.
    5. Hedef Uç Noktalar bölümünde varsayılan'ı seçin.
    6. Kod alanında, <SSLInfo> öğesini eklemek için <HTTPTargetConnection> öğesini düzenleyin. Doğru anahtar deposunu ve anahtar takma adını belirttiğinizden ve hem <Enabled> hem de <ClientAuthEnabled> öğelerini "true" değerine ayarladığınızdan emin olun:
      <TargetEndpoint name="default">
        ...
        <HTTPTargetConnection>
          <SSLInfo>
            <Enabled>true</Enabled>
            <ClientAuthEnabled>true</ClientAuthEnabled>
            <KeyStore>ref://myKeyStoreRef</KeyStore>
            <KeyAlias>myKey</KeyAlias>
          </SSLInfo>
          <URL>https://myservice.com</URL>
        </HTTPTargetConnection>
        ...
      </TargetEndpoint>
    7. API proxy'sini kaydedin. API proxy'si dağıtılmışsa kaydedildiğinde yeni ayarla yeniden dağıtılır.

TargetEndpoint <SSLInfo> değerlerini sağlamak amacıyla değişkenlerin kullanılması da dahil olmak üzere <TargetEndpoint> içindeki seçenekler hakkında daha fazla bilgi için API proxy yapılandırma referansı bölümüne bakın.

SNI'yı etkinleştirme

Edge, Cloud ve Private Cloud dağıtımları için Apigee Edge'deki uç noktaları hedeflemek amacıyla Mesaj İşleyicilerden Sunucu Adı Göstergesi (SNI) kullanımını destekler.

Apigee, Private Cloud için Edge'in mevcut hedef arka uçlarınızla geriye dönük uyumlu olmasını sağlamak amacıyla SNI varsayılan olarak devre dışı bırakılmıştır. Hedef arka ucunuz SNI'yı destekleyecek şekilde yapılandırılmışsa bu özelliği etkinleştirebilirsiniz. Daha fazla bilgi için Edge ile SNI'yı kullanma bölümüne bakın.