Private Cloud için Edge v. 4.16.09
TLS (selesi SSL olan Taşıma Katmanı Güvenliği), API ortamınız genelinde güvenli ve şifrelenmiş mesajlaşmayı sağlamak için kullanılan 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 Stack düğümü içeren 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 Stack düğümleri arasında bir yük dengeleyici içerir. Bu yapılandırmasında portal, yük dengeleyiciye HTTP istekleri gönderir ve yük dengeleyici de istekleri yığın düğümlerinden birine yönlendirir. Bu, üretim sistemi 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:
- Portal'da 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 aracılığıyla 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. - Portal'da ve tek bir Stack düğümünde TLS'yi yapılandırma
Test veya geliştirme ortamı gibi küçük bir ortamda yalnızca tek bir Stack düğümünüz olabilir. Bu durumda, yük dengeleyici eklemeniz gerekmez. Bu yapılandırmada, hem Portal hem de Stack düğümlerinde TLS'yi yapılandırın. - Portal için yük dengeleyicide TLS'yi yapılandırma
Yukarıda gösterilmeyen seçeneklerden biri, Portal düğümünün önünde bir yük dengeleyici kullanmaktır. Bu yapılandırmada, TLS'yi yük dengeleyicide ve isteğe bağlı olarak yük dengeleyici ile Portal arasındaki bağlantıda 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 Stack düğümü olan 8080'de TLS'yi yapılandırır. Ancak dilerseniz bu bağlantı noktasını değiştirebilirsiniz.
Kullandığınız bağlantı noktası ne olursa olsun, düğümde bağlantı noktasının açık olduğundan emin olmanız gerekir. Örneğin, 8443 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
API BaaS Stack için TLS 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 BaaS API'ye HTTP üzerinden erişirsiniz. Örneğin:
http://stack_IP:8080
Alternatif olarak, BaaS API'ye TLS erişimini aşağıdaki biçimde yapılandırabilirsiniz:
https://stack_IP:8080
Bu örnekte, TLS erişimini 8080 bağlantı noktasını kullanacak şekilde yapılandırırsınız. Ancak 8080 bağlantı noktası gerekli değildir. Grup'u farklı bir bağlantı noktası kullanacak şekilde yapılandırabilirsiniz. Tek şart, güvenlik duvarınızın belirtilen bağlantı noktasından trafiğe izin vermesidir.
Grup, tek bir bağlantı noktası üzerinden yalnızca bir tür isteği (HTTP veya HTTPS) destekleyebilir. Bu nedenle, 8080 numaralı bağlantı noktasında HTTPS erişimini yapılandırırsanız 8080 numaralı bağlantı noktasına erişmek için HTTP'yi kullanamazsınız. Grup'u HTTPS ile 8443 bağlantı noktasını kullanacak şekilde yapılandırırsanız Grup artık 8080 bağlantı noktasında dinleme yapmaz.
Yığına TLS erişimini yapılandırmak için aşağıdaki prosedürü kullanın:
- TLS sertifikanızı ve özel anahtarınızı içeren anahtar deposu JKS dosyasını oluşturun. Daha fazla bilgi için Şirket İçi Edge için TLS/SSL'yi yapılandırma başlıklı makaleyi inceleyin.
Not: Anahtar deposundaki ve anahtardaki şifrenin aynı olduğundan emin olun. - 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.
- JKS dosyasının sahipliğini 'Apigee' kullanıcısı olarak değiştirin:
> chown Apigee:Apigee /opt/ekip/customer/application/keystore.jks
burada keystore.jks, anahtar deposu dosyanızın adıdır. - JKS dosyasının yolu ve anahtar deposu ile anahtardaki şifre dahil olmak üzere aşağıdaki özellikleri ayarlamak için /opt/apigee/customer/application/usergrid.properties dosyasını düzenleyin. Bu dosya yoksa 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/apigee/customer/application/keystore.jks
tomcat-server_keystore.password=password
tomcat-server_keyalias=keystore_alias
tomcat-server_clientauth.enabled=false
tomcat-server_ssl.protocols=TLSv1,TLSv1.1,TLSv1.2
# Varsayılan olarak TLS erişimi 8080 bağlantı noktasını kullanır.
# Farklı bir bağlantı noktası belirtmek için bu özelliği kullanın.
# tomcat-server_port=8080
Uyarı: şifre değerinin açık metin olması gerekir. Bu nedenle, usergrid.properties dosyasını yetkisiz erişime karşı korumanız gerekir.
Anahtar deposu takma adını belirtmek için tomcat-server_keyalias mülkünü kullanın. Anahtar takma adını, anahtarı oluştururken ayarlarsınız. Örneğin, keytool komutunda -alias seçeneğini kullanarak ayarlayabilirsiniz.
Güvenlik grubu tarafından desteklenen TLS protokollerini ayarlamak için tomcat-server_ssl.protocols değerini kullanın. Java 8 tarafından desteklenen protokollerin listesi için http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#jssename adresine bakın. - Yığın düğümünü yapılandırın:
> /opt/ gelir/Apigee/service/bin/ ekip/hizmet baas-usergrid yapılandırması - Değişiklikleri Tomcat'e dağıtın:
> /opt/apigee/apigee-service/bin/apigee-service baas-usergrid deploy - BaaS yığınını yeniden başlatın:
> /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart - HTTPS'yi kullanarak Stack 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 doğru bağlantı noktasını kullanmak için yukarıdaki komutu değiştirin. - Tüm Stack düğümlerinde bu işlemi tekrarlayın.
- Yığın düğümlerinin önünde bir yük dengeleyiciniz varsa yük dengeleyiciyi, Yığın düğümlerine HTTPS üzerinden istek gönderecek şekilde yapılandırın. Daha fazla bilgi için yük dengeleyicinizin dokümanlarına bakın.
Portal, grupta doğrudan istek gönderiyorsa Portal'ı, aşağıdaki bölümde açıklandığı gibi grupta HTTPS üzerinden erişecek şekilde yapılandırın. - Kullanıcı yanıtları oluştururken Stack düğümünün doğru TLS URL'lerine sahip olmasını sağlamak için "API BaaS Stack düğümlerini Stack veya Portal'da TLS için yapılandırma" bölümündeki aşağıdaki prosedürü uygulayın.
Portal'ı, TLS üzerinden Yığına erişmek için yapılandırma
Tarayıcıda çalışan BaaS Portalı, BaaS yığınına API çağrıları yaparak çalışır. BaaS Yığınını 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 şu şekilde yapılandırılır:
- Portal ve Yığın düğümleri arasında bir 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 dengeleyicinizin dokümanlarına bakın.
Bu yapılandırmada Portal, yük dengeleyiciyi nasıl yapılandırdığınıza bağlı olarak yük dengeleyiciye HTTP veya HTTPS üzerinden erişebilir. Yük dengeleyici TLS kullanıyorsa Portal'ı HTTPS yük dengeleyicisine istek gönderecek şekilde yapılandırmak için aşağıdaki prosedürü uygulayın. - Portal'ın grupta doğrudan istek göndermesini sağlayın
Portal'ı, aşağıda açıklandığı şekilde HTTPS üzerinden grupta erişime açık olacak şekilde yapılandırın.
API BaaS Portal'ını HTTPS üzerinden API çağrıları yapacak şekilde yapılandırmak için aşağıdaki prosedürü uygulayın:
- BaaS yığınında TLS erişimini yukarıda açıklandığı gibi veya yığın düğümlerinin yük dengeleyicisinde yük dengeleyicinizin dokümanlarında açıklandığı gibi yapılandırın.
- Aşağıdaki özelliği ayarlamak için /opt/apigee/customer/application/portal.properties dosyasını düzenleyin. Bu dosya yoksa oluşturun:
baas.portal.config.overrideUrl=https://stackIP:port
Bu mülkün değeri olarak, tek düğümlü bir kurulum için API Stack düğümünün IP adresini veya DNS adını ve bağlantı noktasını ya da API BaaS Stack düğümlerinin önünde bir yük dengeleyiciniz varsa yük dengeleyicinin IP adresini veya DNS adını ve bağlantı noktasını belirtin. - Portal düğümünü yapılandırın:
> /opt/apigee/apigee-service/bin/apigee-service baas-portal configure - Şu komutu kullanarak Portal'ı yeniden başlatın:
> /opt/gelir/Apigee-service/bin/gelir-hizmeti baas-portal restart - Yukarıdaki Stack'e TLS erişimini yapılandırırken kendinden imzalı sertifika kullandıysanız tarayıcınız Portal'dan Stack'e yapılan isteklere izin vermeyebilir. Tarayıcıda, grupta HTTPS erişimine izin verilmediğine dair bir hata görürseniz tarayıcınıza aşağıdaki URL'yi isteyin ve erişime izin vermek için bir güvenlik istisnası ekleyin:
https://stackIP:port/status
API grubu düğümünün veya yük dengeleyicinin IP adresini ya da 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 sunucusundaki bağlantı noktası 9000 üzerinden şifrelenmemiş HTTP istekleri göndererek 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 Portal'a HTTP üzerinden erişirsiniz. Örneğin:
http://portal_IP:9000
Alternatif olarak, portala TLS erişimini aşağıdaki şekilde yapılandırarak forma erişebilirsiniz:
https://portal_IP:9443
Bu örnekte, TLS erişimini 9443 bağlantı noktasını kullanacak şekilde yapılandırırsınız. Ancak bağlantı noktası 9443 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, 9000 numaralı bağlantı noktasında HTTPS erişimini yapılandırırsanız 9000 numaralı bağlantı noktasına erişmek için HTTP'yi kullanamazsınız. Portal'ı HTTPS ile 9443 bağlantı noktasını 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:
- PEM biçiminde bir anahtar dosyası ve sertifika dosyası oluşturun.
Not: Anahtarda veya sertifikada şifre ya da parola bulunmadığından emin olun. - 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.
- PEM dosyalarının sahipliğini "apigee" kullanıcısına değiştirin:
> chown apigee:apigee /opt/apigee/customer/application/*.PEM - Aşağıdaki özellikleri ayarlamak için /opt/apigee/customer/application/portal.properties dosyasını düzenleyin. Bu dosya yoksa oluşturun:
baas.portal.ssl=on
baas.portal.ssl.certificate=/opt/apigee/customer/application/defaultcert.pem
baas.portal.ssl.key=/opt/apigee/customer/application/defaultkey.pem
baas.portal.ssl.protocols=TLSv1 TLSv1.1 TLSv1.2
# Varsayılan olarak TLS erişimi 9000 numaralı bağlantı noktasını kullanır.
# Farklı bir bağlantı noktası belirtmek için bu özelliği kullanın.
# baas.portal.listen=9000
Portal tarafından desteklenen TLS protokollerini ayarlamak için baas.portal.ssl.protocols parametresini 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. - Portal düğümünü yapılandırın:
> /opt/ gelir/Apigee/service/bin/ ekip/hizmeti baas-portal yapılandırın - Yapılandırmayı dağıtın:
> /opt/ potansiyel/Apigee/Apigee-service/bin/ ekip-service baas-portal deploy - Portalı yeniden başlatın:
> /opt/apigee/apigee-service/bin/apigee-service baas-portal restart - Stack düğümünün Portal için doğru TLS URL'sine sahip olmasını sağlamak amacıyla "API BaaS Stack düğümlerini Stack veya Portal'da TLS için yapılandırma" bölümündeki aşağıdaki prosedürü uygulayın.
API BaaS düğümlerini Stack veya Portal'da TLS için yapılandırma
Grup veya Portal düğümlerinin önüne bir yük dengeleyici ekler ya da TLS'yi doğrudan Portal veya Grup düğümünde etkinleştirirseniz Grup'a ve Portal'a erişmek için düğümleri doğru URL'lerle yapılandırmanız gerekir. Örneğin, Stack düğümleri aşağıdaki durumlarda bu bilgileri gerektirir:
- BaaS API isteklerinde yanıtlara URL ekleme.
- Şifre sıfırlama veya başka bildirimler gönderirken e-posta şablonlarına bağlantı ekleme
- Kullanıcıları belirli Portal sayfalarına yönlendirme.
Stack düğümlerinin önünde bir yük dengeleyici kullanıyorsanız veya Stack düğümünde TLS'yi yapılandırıyorsanız /opt/apigee/customer/application/usergrid.properties dosyasında aşağıdaki özellikleri ayarlayın:
usergrid-deployment_swagger.basepath=http://localhost:8080 usergrid-deployment_usergrid.organization.activation.url=http://localhost:8080/management/organizations/%s/activate usergrid-deployment_usergrid.admin.activation.url=http://localhost:8080/management/users/%s/activate usergrid-deployment_usergrid.admin.resetpw.url=http://localhost:8080/management/users/%s/resetpw usergrid-deployment_usergrid.admin.confirmation.url=http://localhost:8080/management/users/%s/confirm usergrid-deployment_usergrid.user.activation.url=http://localhost:8080/%s/%s/users/%s/activate usergrid-deployment_usergrid.user.confirmation.url=http://localhost:8080/%s/%s/users/%s/confirm usergrid-deployment_usergrid.user.resetpw.url=http://localhost:8080/%s/%s/users/%s/resetpw
http://localhost:8080 adresini yük dengeleyicinin URL'siyle değiştirin. Yük dengeleyici TLS kullanacak şekilde yapılandırılmışsa HTTPS protokolünü kullanın. Bağlantı noktasını yalnızca standart olmayan bir bağlantı noktası kullanıyorsanız eklemeniz gerekir. Bu, HTTP için 80 numaralı bağlantı noktası ve HTTPS için 443 numaralı bağlantı noktası dışında bir değer anlamına gelir.
Stack düğümlerinin önünde bir yük dengeleyici kullanıyorsanız /opt/apigee/customer/application/portal.properties dosyasında aşağıdaki mülkü de ayarlamanız gerekir:
baas.portal.config.overrideUrl=http://localhost:8080
http://localhost:8080 kısmını, Yığın için yük dengeleyicinin URL'siyle 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ırsanız usergrid.properties bölümünde aşağıdaki özellikleri ayarlayın:
usergrid-deployment_usergrid.view.management.organizations.organization.activate=http://localhost:9000 usergrid-deployment_usergrid.view.management.organizations.organization.confirm=http://localhost:9000 usergrid-deployment_usergrid.view.management.users.user.activate=http://localhost:9000 usergrid-deployment_usergrid.view.management.users.user.confirm=http://localhost:9000
http://localhost:9000 adresini yük dengeleyicinin URL'siyle değiştirin. Yük dengeleyici TLS'yi kullanacak şekilde yapılandırılmışsa HTTPS protokolünü kullanın. Bağlantı noktasını yalnızca standart olmayan bir bağlantı noktası kullanıyorsanız eklemeniz gerekir. Bu, HTTP için bağlantı noktası 80 ve HTTPS için bağlantı noktası 443 dışında bir noktadır.
usergrid.properties dosyasını düzenledikten sonra:
- Yığın düğümünü yapılandırın:
> /opt/ gelir/Apigee/service/bin/ ekip/hizmet baas-usergrid yapılandırması - Değişiklikleri Tomcat'e dağıtın:
> /opt/apigee/apigee-service/bin/apigee-service baas-usergrid deploy - BaaS yığınını yeniden başlatın:
> /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart - portal.properties dosyasını değiştirdiyseniz Portal düğümünü yapılandırın:
> /opt/apigee/apigee-service/bin/apigee-service baas-portal configure - Değişiklikleri dağıtın:
> /opt/apigee/apigee-service/bin/apigee-service baas-portal deploy - BaaS portalını yeniden başlatın:
> /opt/apigee/apigee-service/bin/apigee-service baas-portal restart