API BaaS için TLS'yi yapılandırma

Edge for Private Cloud 4.18.01 sürümü

TLS (önceki adı SSL olan Taşıma Katmanı Güvenliği), API ortamınızda güvenli ve şifrelenmiş mesajlaşma sağlayan standart güvenlik teknolojisidir. TLS'yi API BaaS Portalı ve API BaaS Yığın düğümlerinde yapılandırabilirsiniz.

Aşağıdaki resimde, tek bir BaaS Portal düğümü ve üç API BaaS Yığın düğümü olan API BaaS için tipik bir dağıtım şeması gösterilmektedir.

Geliştiriciler, Portal'a istekte bulunmak için bir tarayıcı kullanır. Varsayılan olarak istekler, Portal düğümünün 9000 numaralı bağlantı noktasında HTTP protokolünü kullanır.

Bu dağıtım, Portal ve Yığın düğümleri arasında bir yük dengeleyici içerir. Bu yapılandırmada Portal, yük dengeleyiciye HTTP istekleri gönderir ve yük dengeleyici daha sonra istekleri Yığın düğümlerinden birine yönlendirir. Bu, üretim sistemleri için önerilen dağıtım ortamıdır.

TLS yapılandırma seçenekleri

API BaaS için TLS'yi yapılandırırken birkaç seçeneğiniz vardır:

  • Portalda ve Yığın düğümleri için yük dengeleyicide TLS'yi yapılandırın

    Bu yapılandırmada, geliştiriciler Portal'a erişmek için HTTPS protokolünü kullanır ve tarayıcıda çalışan Portal, yük dengeleyici üzerinden Yığın düğümlerine istek göndermek için HTTPS kullanır. Yük dengeleyici, Yığın düğümlerine erişmek için HTTP kullanır.
  • Portal, yük dengeleyici ve Yığın düğümlerinde TLS'yi yapılandırın

    Daha fazla güvenlik için yük dengeleyiciyi, Yığın düğümlerine erişmek üzere TLS kullanacak şekilde yapılandırın.
  • TLS'yi Portal'da ve tek bir Yığın düğümünde yapılandırın

    Test veya geliştirme ortamı gibi küçük bir ortamda, yalnızca tek bir Yığın düğümü olabilir, yani yük dengeleyici eklemeniz gerekmez. Bu yapılandırmada, TLS'yi hem Portal hem de Yığın düğümlerinde yapılandırın.
  • Portal için yük dengeleyicide TLS'yi yapılandırın

    Yukarıda gösterilmeyen seçeneklerden biri, Portal düğümünün önünde bir yük dengeleyici kullanmaktır. Bu yapılandırmada, yük dengeleyicide ve isteğe bağlı olarak yük dengeleyici ile Portal arasındaki bağlantıda TLS'yi yapılandırabilirsiniz.

TLS bağlantı noktasının açık olduğundan emin olun

Aşağıdaki prosedürler, varsayılan Portal bağlantı noktası olan 9000 ve Yığın düğümü olan 8080'de TLS'yi yapılandırır. Ancak isterseniz bu bağlantı noktasını değiştirebilirsiniz.

Kullandığınız bağlantı noktası ne olursa olsun, düğümdeki bağlantı noktasının açık olduğundan emin olmanız gerekir. Örneğin, 8443 numaralı bağlantı noktasını açmak için aşağıdaki komutu kullanabilirsiniz:

$ iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8443 -j ACCEPT --verbose

API BaaS yığınında TLS'yi yapılandırma

TLS, API BaaS yığını için varsayılan olarak devre dışıdır. Ardından, Stack düğümünün IP adresini veya DNS adını ve 8080 bağlantı noktasını kullanarak HTTP üzerinden BaaS API'ye erişirsiniz. Örneğin:

http://stack_IP:8080

Alternatif olarak, TLS'yi BaaS API'ye aşağıdaki biçimde erişebilmek için yapılandırabilirsiniz:

https://stack_IP:8080

Bu örnekte, TLS erişimini 8080 bağlantı noktasını kullanacak şekilde yapılandırıyorsunuz. Ancak 8080 numaralı bağlantı noktası gerekli değildir. Yığını farklı bir bağlantı noktası kullanacak şekilde yapılandırabilirsiniz. Tek şart, güvenlik duvarınızın belirtilen bağlantı noktası üzerinden trafiğe izin vermesidir.

Yığın, tek bir bağlantı noktası üzerinden yalnızca bir istek türünü (HTTP veya HTTPS) destekleyebilir. Bu nedenle, HTTPS erişimini 8080 bağlantı noktasında yapılandırırsanız 8080 bağlantı noktasına erişmek için HTTP kullanamazsınız. Yığını HTTPS ile bağlantı noktası 8443'ü kullanacak şekilde yapılandırırsanız, Yığın artık 8080 bağlantı noktası üzerinde işlem yapmaz.

Yığına TLS erişimini yapılandırmak için aşağıdaki prosedürü kullanın:

  1. TLS sertifikanızı ve özel anahtarınızı içeren anahtar deposu JKS dosyasını oluşturun. Daha fazla bilgi için Uç Şirket İçin TLS/SSL'yi Yapılandırma bölümüne bakın.
    Not: Anahtar deposundaki ve anahtarın aynı şifre olduğundan emin olun.
  2. Anahtar deposu JKS dosyasını Yığın düğümündeki /opt/apigee/customer/application gibi bir dizine kopyalayın. Dizin, 'Apigee' kullanıcısı tarafından erişilebilir olmalıdır.
  3. JKS dosyasının sahipliğini 'Apigee' kullanıcısı olarak değiştirin:
    > chown apigee:Apigee /opt/Apigee/customer/application/keystore.jks

    Burada keystore.jks anahtar deposu dosyanızın adıdır.
  4. JKS dosyasının yolu ve anahtar deposundaki ve anahtardaki şifre dahil olmak üzere aşağıdaki özellikleri ayarlamak için /opt/apigee/customer/application/usergrid.properties dosyasını düzenleyin. Söz konusu dosya mevcut değilse oluşturun:
    tomcat-server_scheme=https
    tomcat-server_secure=true
    tomcat-server_ssl.enabled=true
    tomcat-server_keystore.type=JKS
    tomcat-server_keystore.file=/opt/impression/customer/application/keystore /opt/apigee/customer/application/keystore.jks tane-sunucu




    /opt/apigee/customer/application/keystore.jks

    # Farklı bir bağlantı noktası belirtmek için bu özelliği kullanın.
    # tomcat-server_port=8080


    Uyarı: password (şifre) değeri açık metin olmalıdır. Bu nedenle, usergrid.properties alanını yetkisiz erişime karşı korumanız gerekir.

    Anahtar deposu takma adını belirtmek için tomcat-server_keyalias özelliğini kullanın. Anahtar takma adını, anahtarı oluşturduğunuz sırada ayarlarsınız. Örneğin, bu ayarı keytool komutu için -alias seçeneğini kullanarak yapabilirsiniz.

    Yığının desteklediği TLS protokollerini ayarlamak için tomcat-server_ssl.protocols'u kullanın. Java 8'in desteklediği protokollerin listesi için http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#jssename adresini ziyaret edin.
  5. Yığın düğümünü yapılandırın:
    > /opt/../..//../../-service/bin/Apigee-service baas-usergrid yapılandır
  6. BaaS Grubunu yeniden başlatın:
    > /opt/Apigee/Apigee-service/bin/Apigee-service baas-usergrid restart
  7. HTTPS'yi kullanarak Yığın düğümünde aşağıdaki cURL komutunu çalıştırarak TLS'nin çalıştığını onaylayın:
    > curl -k https://localhost:8080/status -v

    TLS doğru şekilde yapılandırılmışsa durum bilgilerini içeren bir yanıt görürsünüz.

    TLS erişimini 8080 dışında bir bağlantı noktası üzerinden yapılandırdıysanız yukarıdaki komutu doğru bağlantı noktasını kullanacak şekilde değiştirin.
  8. Bu işlemi tüm Yığın düğümlerinde tekrarlayın.
  9. Yığın düğümlerinin önünde bir yük dengeleyici varsa yük dengeleyiciyi, HTTPS üzerinden Yığın düğümlerine istek yapacak şekilde yapılandırın. Daha fazla bilgi için yük dengeleyicinizle ilgili belgelere bakın.

    Portal, Yığına doğrudan istek yapıyorsa Portalı, aşağıdaki bölümde açıklandığı gibi HTTPS üzerinden Yığına erişecek şekilde yapılandırın.
  10. Kullanıcı yanıtları oluştururken Yığın düğümünün doğru TLS URL'lerine sahip olduğundan emin olmak için "Yığın veya Portal'da TLS için API BaaS Yığın düğümlerini yapılandırma" bölümünde aşağıdaki prosedürü kullanın.

Portalı TLS üzerinden Yığına erişecek şekilde yapılandırma

Tarayıcıda çalışan BaaS Portalı, BaaS yığınına API çağrıları yaparak işlev görür. BaaS Grubunu TLS'yi kullanacak şekilde yapılandırırsanız Portalı bu çağrıları HTTPS üzerinden yapacak şekilde de yapılandırmanız gerekir.

API BaaS yüklemesi genellikle aşağıdakilerden biri olacak şekilde yapılandırılır:

  • Portal ve Yığın düğümleri arasında yük dengeleyici kullanın

    Yük dengeleyiciyi HTTPS üzerinden Yığın düğümlerine istek yapacak şekilde yapılandırın. Daha fazla bilgi için yük dengeleyicinizle ilgili belgelere bakın.

    Bu yapılandırmada Portal, yük dengeleyiciyi nasıl yapılandırdığınıza bağlı olarak HTTP veya HTTPS üzerinden yük dengeleyiciye erişebilir. Yük dengeleyici TLS kullanıyorsa portalı, HTTPS yük dengeleyiciye istek yapacak şekilde yapılandırmak için aşağıdaki prosedürü kullanın.
  • Portal'ın Yığın'a doğrudan istekte bulunmasını sağlayın

    Portalı, aşağıda açıklandığı gibi HTTPS üzerinden Yığına erişecek şekilde yapılandırın.

HTTPS üzerinden API çağrıları yapmak için API BaaS Portalı'nı yapılandırmak üzere aşağıdaki prosedürü kullanın:

  1. TLS erişimini yukarıda açıklandığı gibi BaaS Yığınında ya da Yığın düğümleri için yük dengeleyicide yük dengeleyicinizle ilgili dokümanlarda açıklandığı gibi yapılandırın.
  2. Aşağıdaki özelliği ayarlamak için /opt/apigee/customer/application/portal.properties dosyasını düzenleyin. Söz konusu dosya mevcut değilse oluşturun:
    baas.portal.config.overrideUrl=https://stackIP:port

    Bu özelliğin değeri olarak tek bir düğüm kurulumu için API Yığını düğümünün IP adresini veya DNS adını ve bağlantı noktasını ya da API BaaS Yığın düğümlerinin önünde bir yük dengeleyiciniz varsa yük dengeleyiciyi belirtin.
  3. Portal düğümünü yapılandırın:
    > /opt/Apigee/Apigee-service/bin/Apigee-service baas-portal yapılandır
  4. Şu komutu kullanarak Portalı yeniden başlatın:
    > /opt/../..//Apigee-service/bin/Apigee-service baas-portal restart
  5. Yukarıdaki Yığına TLS erişimini yapılandırırken kendinden imzalı bir sertifika kullandıysanız tarayıcınız, Portal'dan Yığın'a gönderilen isteklere izin vermeyebilir. Tarayıcıda, Yığına HTTPS erişimine izin verilmediğini belirten bir hata görürseniz tarayıcınızda aşağıdaki URL'yi isteyin ve erişime izin vermek için bir güvenlik istisnası ekleyin:
    https://stackIP:port/status

    API Yığını düğümünün veya yük dengeleyicinin IP adresini veya DNS adını ve bağlantı noktasını belirtin.

API BaaS Portalı'nda TLS'yi yapılandırma

Varsayılan olarak kullanıcılar, Portal sunucusunda 9000 numaralı bağlantı noktası üzerinden şifrelenmemiş HTTP istekleri oluşturarak Portal'a erişir. Portalı, portala ve portaldan gönderilen verileri şifrelemek için HTTPS kullanacak şekilde yapılandırabilirsiniz.

Varsayılan olarak Portal düğümünün IP adresini veya DNS adını ve 9000 bağlantı noktasını kullanarak HTTP üzerinden Portal'a erişirsiniz. Örneğin:

http://portal_IP:9000

Alternatif olarak, TLS'nin Portal'a erişimini aşağıdaki formda erişecek şekilde yapılandırabilirsiniz:

https://portal_IP:9443

Bu örnekte, TLS erişimini 9443 bağlantı noktasını kullanacak şekilde yapılandırıyorsunuz. Ancak 9443 numaralı bağlantı noktası gerekli değildir; Portalı farklı bir bağlantı noktası kullanacak şekilde yapılandırabilirsiniz.

Portal, tek bir bağlantı noktası üzerinden yalnızca bir istek türünü (HTTP veya HTTPS) destekleyebilir. Bu nedenle, HTTPS erişimini 9000 bağlantı noktasında yapılandırırsanız 9000 bağlantı noktasına erişmek için HTTP kullanamazsınız. Portal'ı, HTTPS ile bağlantı noktası 9443'ü kullanacak şekilde yapılandırırsanız Portal artık 9000 bağlantı noktasında dinleme yapmaz.

Portal için TLS'yi yapılandırmak üzere:

  1. PEM biçiminde bir anahtar dosyası ve sertifika dosyası oluşturun.
    Not: Anahtarda veya sertifikada şifre/parola bulunmadığından emin olun.
  2. PEM dosyalarını Portal düğümündeki /opt/apigee/customer/application gibi bir dizine kopyalayın. Dizin, 'Apigee' kullanıcısı tarafından erişilebilir olmalıdır.
  3. PEM dosyalarının sahipliğini 'Apigee' kullanıcısı olarak değiştirin:
    > chown Apigee:Apigee /opt/impression/customer/application/*.PEM
  4. Aşağıdaki özellikleri ayarlamak için /opt/apigee/customer/application/portal.properties dosyasını düzenleyin. Söz konusu dosya mevcut değilse dosyayı oluşturun:
    baas.portal.ssl=on
    baas.portal.ssl.certificate=/opt/apigee/customer/application/defaultcert.pem
    baas.portal.ssl.key=/opt/apigee/customer/application/defaultcert.pem


    # Farklı bir bağlantı noktası belirtmek için bu özelliği kullanın.
    # baas.portal.listen=9000


    Portal'ın desteklediği TLS protokollerini ayarlamak için baas.portal.ssl.protocols protokolünü kullanın. Desteklenen protokollerin listesi için Nginx tarafından tanımlanan SSL protokolü adlarının listesine bakın: http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_protocols.
  5. Portal düğümünü yapılandırın:
    > /opt/Apigee/Apigee-service/bin/Apigee-service baas-portal yapılandır
  6. Portalı yeniden başlatın:
    > /opt/../..//Apigee-service/bin/Apigee-service baas-portal restart
  7. Yığın düğümünün Portal için doğru TLS URL'sine sahip olduğundan emin olmak üzere "Yığın veya Portal'da TLS için API BaaS Yığın düğümlerini yapılandırma" bölümünde aşağıdaki prosedürü kullanın.

Yığın veya Portal'da TLS için API BaaS düğümlerini yapılandırma

Yığın veya Portal düğümlerinin önüne bir yük dengeleyici ekler ya da TLS'yi doğrudan Portal ya da Yığın düğümünde etkinleştirirseniz Yığın ve Portal'a erişmek için düğümleri doğru URL'lerle yapılandırmanız gerekir. Örneğin, Yığın düğümleri aşağıdaki durumlarda bu bilgileri gerektirir:

  • BaaS API isteklerindeki yanıtlara URL ekleme.
  • Şifreyi sıfırlarken veya başka bildirimler gönderirken e-posta şablonlarına bağlantı ekleme.
  • Kullanıcıları belirli Portal sayfalarına yönlendirme.

Yığın düğümlerinin önünde bir yük dengeleyici kullanıyor veya Yığın düğümünde TLS'yi yapılandırıyorsanız /opt/apigee/customer/application/usergrid.properties içinde aşağıdaki özelliği ayarlayın:

usergrid-deployment_usergrid.api.url.base=http://localhost:8080

http://localhost:8080 ifadesini yük dengeleyicinin URL'siyle değiştirin. Yük dengeleyici TLS kullanacak şekilde yapılandırıldıysa HTTPS protokolünü kullanın. Bağlantı noktasını yalnızca standart olmayan bir bağlantı noktası kullanıyorsanız (yani HTTP için 80 ve HTTPS için bağlantı noktası 443 dışında bir bağlantı noktası) eklemeniz gerekir.

Yığın düğümlerinin önünde bir yük dengeleyici kullanıyorsanız /opt/Apigee/customer/application/portal.properties içinde aşağıdaki özelliği de ayarlamanız gerekir:

baas.portal.config.overrideUrl=http://localhost:8080

http://localhost:8080 ifadesini Yığın için yük dengeleyicinin URL'si ile değiştirin.

Portal düğümünün önünde bir yük dengeleyici kullanıyorsanız veya Yığın düğümünde TLS'yi yapılandırıyorsanız usergrid.properties içinde aşağıdaki özellikleri ayarlayın:

usergrid-deployment_portal.url=http://localhost:9000

http://localhost:9000 ifadesini yük dengeleyicinin URL'siyle değiştirin. Yük dengeleyici TLS kullanacak şekilde yapılandırıldıysa HTTPS protokolünü kullanın. Bağlantı noktasını yalnızca standart olmayan bir bağlantı noktası kullanıyorsanız (HTTP için 80 ve HTTPS için bağlantı noktası 443 dışında bir bağlantı noktası) kullanmanız gerekir.

usergrid.properties dosyasını düzenledikten sonra:

  1. Yığın düğümünü yapılandırın:
    > /opt/../..//../../-service/bin/Apigee-service baas-usergrid yapılandır
  2. BaaS Grubunu yeniden başlatın:
    > /opt/Apigee/Apigee-service/bin/Apigee-service baas-usergrid restart
  3. portal.properties dosyasını değiştirdiyseniz Portal düğümünü yapılandırın:??
    > /opt/Apigee/Apigee-service/bin/Apigee-service baas-portal yapılandır
  4. BaaS Portalı'nı yeniden başlatın:
    > /opt/Apigee/Apigee-service/bin/Apigee-service baas-portal yeniden başlatma