Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Edge'deki bir sanal ana makine, bir API proxy'sinin kullanıma sunulduğu alanları ve bağlantı noktalarını, dolayısıyla uygulamaların bir API proxy'sine erişmek için kullandığı URL'yi tanımlar.
Sanal ana makine, API proxy'sine HTTP protokolü kullanılarak mı yoksa TLS kullanan şifrelenmiş HTTPS protokolü kullanılarak mı erişileceğini de tanımlar. HTTPS ve TLS kullanmak üzere bir sanal ana makine yapılandırırken Edge'de bir sanal ana makine oluşturur ve sanal ana makineyi anahtar deposu ve güven deposu kullanacak şekilde yapılandırırsınız.
Daha fazla bilgi:
- TLS/SSL hakkında
- Edge ile TLS kullanma
- Sanal ana makineler hakkında
- Private Cloud için sanal ana makineleri yapılandırma
- Sanal ana makine özelliği referansı
- Anahtar depoları ve güven depoları
Sanal ana makine oluşturmak için gerekenler
Sanal ana makine oluşturmadan önce aşağıdaki bilgilere sahip olmanız gerekir:
- Sanal ana makinenin herkese açık alan adı. Örneğin, herkese açık adın
api.myCompany.com,myapi.myCompany.comvb. olup olmadığını bilmeniz gerekir. Bu bilgiler, sanal ana makineyi oluştururken ve sanal ana makine için DNS kaydı oluştururken kullanılır. -
Tek yönlü TLS için, anahtar deposunun aşağıdakileri içerdiği bir anahtar deposu oluşturmanız gerekir:
- TLS sertifikası: Sertifika yetkilisi (CA) tarafından imzalanmış bir sertifika veya son sertifikanın bir CA tarafından imzalandığı bir sertifika zinciri.
- Özel anahtar: Edge, 2048 bit'e kadar anahtar boyutlarını destekler. Parola isteğe bağlıdır.
- İki yönlü TLS için, anahtar deposuna ve istemcinin sertifikasını ve isteğe bağlı olarak sertifikanın CA zincirini tutmak için güven deposuna ihtiyacınız vardır. Sertifika bir CA tarafından imzalanmış olsa bile güvenli depoya ihtiyacınız vardır.
Anahtar depoları ve güven depoları oluşturma hakkında daha fazla bilgi için Anahtar depoları ve güven depoları başlıklı makaleyi inceleyin.
TLS için sanal ana makine yapılandırması
Sanal ana makine oluşturmak için sanal ana makineyi tanımlayan bir XML nesnesi oluşturun.
Aşağıdaki XML nesnesi, HTTPS üzerinden tek yönlü TLS yapılandırması için sanal bir ana makine tanımlamak üzere <SSLInfo> öğesini kullanır:
<VirtualHost name="myTLSVHost">
<HostAliases>
<HostAlias>apiTLS.myCompany.com</HostAlias>
</HostAliases>
<Interfaces/>
<Port>9006</Port>
<OCSPStapling>off</OCSPStapling>
<SSLInfo>
<Enabled>true</Enabled>
<ClientAuthEnabled>false</ClientAuthEnabled>
<KeyStore>ref://myTestKeystoreRef</KeyStore>
<KeyAlias>myKeyAlias</KeyAlias>
</SSLInfo>
</VirtualHost>Bu örnekte, tek yönlü TLS'yi etkinleştirmek için <Enabled> öğesi true olarak ayarlanır. <KeyStore> ve <KeyAlias> öğeleri ise TLS bağlantısı tarafından kullanılan anahtar deposunu ve anahtarı belirtir.
İki yönlü TLS'yi etkinleştirmek için <ClientAuthEnabled> öğesini true olarak ayarlayın ve <TrustStore> öğesini kullanarak bir güven deposu belirtin. Güven deposu, istemcinin sertifikasını ve isteğe bağlı olarak sertifikanın CA zincirini içerir.
Anahtar deposu ve güven deposu adının sanal ana makinede nasıl belirtileceğine karar verme
Yukarıdaki sanal ana makine örneğinde, referans kullanarak anahtar deposunu belirttiniz. Referans, anahtar deposu adını doğrudan belirtmek yerine anahtar deposunun adını içeren bir değişkendir.
Referans kullanmanın avantajı, referansın değerini değiştirerek sanal ana makine tarafından kullanılan anahtar deposunu değiştirebilmenizdir. Bu genellikle geçerli anahtar deposundaki sertifikanın yakın gelecekte süresinin dolacak olmasından kaynaklanır. Referansın değerini değiştirmek için Edge yönlendiriciyi yeniden başlatmanız gerekmez.
Alternatif olarak, sanal ana makinede gerçek bir anahtar deposu adı kullanabilirsiniz. Ancak, anahtar deposu adını değiştirmek için sanal ana makineyi değiştirirseniz Edge yönlendiricileri yeniden başlatmanız gerekir.
Anahtar depolarına ve güven deposuna referans verme ile ilgili kısıtlamalar
Anahtar depolarına ve güven depolarına referans verirken aşağıdaki kısıtlamayı göz önünde bulundurmanız gerekir:
- Anahtar deposu ve güven deposu referanslarını yalnızca SNI'yı destekliyorsanız ve sanal ana makinelerde kullanabilirsiniz. Apigee yönlendiricilerinde SSL'yi sonlandırıyorsanız.
- Apigee yönlendiricilerinin önünde bir yük dengeleyici varsa ve yük dengeleyicide TLS'yi sonlandırırsanız anahtar deposu ve güvenilir sertifika deposu referanslarını sanal ana makinelere ekleyemezsiniz.
Mevcut bir sanal ana makineyi, anahtar deposu ve güven deposu referanslarını kullanacak şekilde değiştirme
Apigee, sanal ana makinelerin anahtar depolarına ve güven depolarına referans kullanmasını önemle tavsiye eder. Referanslar, sanal ana makine tarafından kullanılan anahtar deposunu ve güven deposunu Edge yönlendiricilerini yeniden başlatmak zorunda kalmadan değiştirmenize olanak tanır.
Sanal ana makineleriniz şu anda anahtar deposunun veya güven deposunun gerçek adını kullanacak şekilde yapılandırılmışsa bunları referans kullanacak şekilde dönüştürebilirsiniz. Bunu yapmak için sanal ana makineyi referansları kullanacak şekilde güncelleyin ve ardından Edge yönlendiricileri yeniden başlatın.
Edge 4.15.07 ve önceki sürümler için TLS şifrelerini ve protokollerini ayarlama
Edge 4.15.07 ve önceki sürümlerini kullanıyorsanız sanal ana makine tarafından kullanılan TLS protokolünü ve şifreleri, <SSLInfo> etiketinin <Ciphers> ve <Protocols> alt etiketlerini kullanarak ayarlarsınız. Bu etiketler aşağıdaki tabloda açıklanmıştır.
Örneğin:
<SSLInfo>
<Enabled>true</Enabled>
<ClientAuthEnabled>false</ClientAuthEnabled>
<KeyStore>myTestKeystore</KeyStore>
<KeyAlias>myKeyAlias</KeyAlias>
<SSLInfo>
<Enabled>true</Enabled>
<ClientAuthEnabled>false</ClientAuthEnabled>
<KeyStore>myTestKeystore</KeyStore>
<KeyAlias>myKeyAlias</KeyAlias>
<Ciphers>
<Cipher>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA</Cipher>
<Cipher>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256</Cipher>
</Ciphers>
<Protocols>
<Protocol>TLSv1.2</Protocol>
</Protocols>
</SSLInfo>
</SSLInfo><Cipher> etiketi, şifrenin Java ve JSSE adını kullanır. Örneğin, Java 8 için
http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#ciphersuites adresini inceleyin.
Edge 4.16.01 - 4.16.09 için TLS şifrelerini ve protokollerini belirtme
Edge 4.16.01 - 4.16.09 sürümlerinde, sanal ana makineler için varsayılan şifreleri ve protokolleri yönlendiricide genel olarak ayarlarsınız. Bu varsayılanlar daha sonra tüm sanal ana makinelere uygulanır.
Varsayılan protokolleri ve şifreleri belirtmek için jetonları kullanın:
- Varsayılan protokolleri belirtmek için
conf_load_balancing_load.balancing.driver.server.ssl.protocolssimgesini kullanın. - Yönlendiricinin varsayılan şifrelerini belirtmek için
conf_load_balancing_load.balancing.driver.server.ssl.ciphersjetonunu kullanın.
conf_load_balancing_load.balancing.driver.server.ssl.protocols jetonunun varsayılan değeri şudur:
conf_load_balancing_load.balancing.driver.server.ssl.protocols=TLSv1 TLSv1.1 TLSv1.2
Bu ayar, yönlendiricinin TLS 1.0, 1.1 ve 1.2 sürümlerini desteklediğini belirtir. Boşlukla ayrılmış bir değer listesini jetona belirtin.
conf_load_balancing_load.balancing.driver.server.ssl.ciphers jetonunun varsayılan değeri şudur:
conf_load_balancing_load.balancing.driver.server.ssl.ciphers=HIGH:!aNULL:!MD5:!DH+3DES:!RSA+3DES
Bu ayar şunları belirtir:
- 128 bit veya daha uzun anahtar uzunluğu gerekir (
HIGH). - Kimlik doğrulama içermeyen şifreleri hariç tutma (
!aNULL) - MD5 kullanan şifre paketlerini hariç tut (
!MD5) - DH (anonim DH, geçici DH ve sabit DH dahil) KULLANAN şifreleme paketlerini VE
üçlü DES'i (
!DH+3DES) hariç tutun. - RSA anahtarı takası VE Triple DES kullanan şifre paketlerini hariç tutun (
!RSA+3DES)
Bu jetonun izin verdiği söz dizimi ve değerler hakkında bilgi edinmek için OpenSSL şifreleri başlıklı makaleyi inceleyin. Bu jetonun, TLS_RSA_WITH_AES_128_CBC_SHA256 gibi Java/JSSE şifre adları yerine AES128-SHA256 gibi OpenSSL şifre adlarını kullandığını unutmayın.
Yönlendirici için jetonu ayarlamak üzere:
/opt/apigee/customer/application/router.propertiesdosyasını düzenleyin. Bu dosya yoksa oluşturun.conf_load_balancing_load.balancing.driver.server.ssl.ciphersjetonunu ayarlayın. Örneğin, yalnızca TLSv1.2'yi belirtmek ve önceden paylaşılan anahtarları kullanan şifre paketlerini hariç tutmak için!PSKekleyin:conf_load_balancing_load.balancing.driver.server.ssl.protocols=TLSv1.2 conf_load_balancing_load.balancing.driver.server.ssl.ciphers=HIGH:!aNULL:!MD5:!DH+3DES:!RSA+3DES:!PSK
router.propertiesdosyasının sahibi apigee olmalıdır:chown apigee:apigee /opt/apigee/customer/application/router.properties
- Edge yönlendiriciyi yeniden başlatın:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- Jetonun değerini kontrol edin:
/opt/apigee/apigee-service/bin/apigee-service edge-router configure -search conf_load_balancing_load.balancing.driver.server.ssl.ciphers
Edge 4.17.01 ve sonraki sürümler için TLS sanal ana makine parametrelerini ayarlama
Edge 4.17.01 ve sonraki sürümleri kullanıyorsanız <VirtualHost> etiketinin <Properties> alt etiketini kullanarak TLS protokolü ve şifre gibi bazı TLS özelliklerini tek bir sanal ana makine için ayarlayabilirsiniz. Bu etiketler Sanal ana makine özelliği referansı bölümünde açıklanmıştır.
Örneğin:
<VirtualHost name="myTLSVHost">
<HostAliases>
<HostAlias>apiTLS.myCompany.com</HostAlias>
</HostAliases>
<Interfaces/>
<Port>9006</Port>
<OCSPStapling>off</OCSPStapling>
<SSLInfo>
<Enabled>true</Enabled>
<ClientAuthEnabled>false</ClientAuthEnabled>
<KeyStore>ref://myTestKeystoreRef</KeyStore>
<KeyAlias>myKeyAlias</KeyAlias>
</SSLInfo>
<Properties>
<Property name="proxy_read_timeout">50</Property>
<Property name="keepalive_timeout">300</Property>
<Property name="proxy_request_buffering">off</Property>
<Property name="proxy_buffering">off</Property>
<Property name="ssl_protocols">TLSv1.2 TLSv1.1</Property>
<Property name="ssl_ciphers">HIGH:!aNULL:!MD5:!DH+3DES:!kEDH</Property>
</Properties>
</VirtualHost>ssl_ciphers jetonu tarafından izin verilen söz dizimi ve değerler hakkında bilgi edinmek için OpenSSL şifreleri başlıklı makaleyi inceleyin.
Bu jetonun, TLS_RSA_WITH_AES_128_CBC_SHA256 gibi Java/JSSE şifre adları yerine AES128-SHA256 gibi OpenSSL şifre adlarını kullandığını unutmayın.
HTTPS kullanan bir sanal ana makine oluşturma
Bu örnekte, referans kullanılarak sanal ana makine için anahtar deposu belirtilmektedir. Referans kullanmak, yönlendiricileri yeniden başlatmak zorunda kalmadan anahtar deposunu değiştirmenize olanak tanır.
Sanal ana makineyi oluşturmak için aşağıdaki prosedürü kullanın:
- Burada açıklanan prosedürü kullanarak myTestKeystore adlı bir anahtar deposu oluşturun ve yapılandırın: Anahtar Depoları ve Güven Depoları. Anahtar deposunun, sertifika ve özel anahtar için myKeyAlias takma adını kullandığından emin olun.
-
Yukarıda oluşturduğunuz anahtar deposunda keystoreref adlı 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="keystoreref"> <Refers>myTestKeystore</Refers> <ResourceType>KeyStore</ResourceType> </ResourceReference>' -u email:passwordReferans, anahtar deposunun adını ve referans türünü
KeyStoreolarak 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/keystoreref -u uname:password Create a Virtual Host API'sini kullanarak sanal ana makineyi oluşturun. Burada
<ms-IP>, Yönetim Sunucusu düğümünün IP adresi veya alan adıdır.Doğru anahtar deposu referansını ve anahtar takma adını belirttiğinizden emin olun:
curl -X POST -H "Content-Type:application/xml" \ http://<ms-IP>:8080/v1/o/{org_name}/environments/{env_name}/virtualhosts \ -d '<VirtualHost name="newTLSTrustStore2"> <HostAliases> <HostAlias>apiTLS.myCompany.com</HostAlias> </HostAliases> <Interfaces/> <Port>9005</Port> <OCSPStapling>off</OCSPStapling> <SSLInfo> <Enabled>true</Enabled> <ClientAuthEnabled>false</ClientAuthEnabled> <KeyStore>ref://keystoreref</KeyStore> <KeyAlias>myKeyAlias</KeyAlias> </SSLInfo> </VirtualHost>' \ -u email:password- Ana makine takma adıyla eşleşen sanal ana makine için bir DNS kaydı oluşturun.
Mevcut API proxy'leriniz varsa sanal ana makineyi ProxyEndpoint'teki
<HTTPConnection>öğesine ekleyin. Sanal ana makine, tüm yeni API proxy'lerine otomatik olarak eklenir.Sanal ana makineler hakkında bölümündeki Sanal ana makine oluşturduktan sonra API proxy'sini güncelleme başlıklı makaleye bakın.
Bir API proxy'sini sanal ana makineyi kullanacak şekilde güncelledikten ve ana makine diğer adı için DNS kaydını oluşturduktan sonra API proxy'sine aşağıdaki şekilde erişebilirsiniz:
https://apiTLS.myCompany.com/v1/{project-base-path}/{resource-path}Örneğin:
https://apiTLS.myCompany.com/v1/weather/forecastrss?w=12797282
Anahtar deposu veya güven deposu için referans oluşturma ve değiştirme
İsteğe bağlı olarak, sanal ana makineyi anahtar deposuna veya güvenilen sertifika deposuna referans kullanacak şekilde de yapılandırabilirsiniz. Referans kullanmanın avantajı, TLS sertifikasını güncellemek için referansı farklı bir anahtar deposuna veya güven deposuna yönlendirecek şekilde güncelleyebilmenizdir. Bu durumda bir yönlendiriciyi yeniden başlatmanız gerekmez.
Örneğin, aşağıda anahtar deposuna referans veren bir sanal ana makine gösterilmektedir:
<VirtualHost name="myTLSVHost">
<HostAliases>
<HostAlias>apiTLS.myCompany.com</HostAlias>
</HostAliases>
<Interfaces/>
<Port>9006</Port>
<SSLInfo>
<Enabled>true</Enabled>
<ClientAuthEnabled>false</ClientAuthEnabled>
<KeyStore>ref://keystoreref</KeyStore>
<KeyAlias>myKeyAlias</KeyAlias>
</SSLInfo>
</VirtualHost>keystoreref adlı 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="keystoreref">
<Refers>myTestKeystore</Refers>
<ResourceType>KeyStore</ResourceType>
</ResourceReference>'
-u email:password
Referans, anahtar deposunun adını ve türünü 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/keystoreref -u uname:password
Daha sonra referansı farklı bir anahtar deposuna yönlendirecek şekilde değiştirmek için (takma adın aynı ada sahip olduğundan emin olarak) aşağıdaki PUT çağrısını kullanın:
curl -X PUT -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references/keystoreref \
-d '<ResourceReference name="keystoreref">
<Refers>myNewKeystore</Refers>
<ResourceType>KeyStore</ResourceType>
</ResourceReference>'
-u email:password