Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Edge'deki sanal ana makine, API proxy'sinin gösterildiği alan adlarını ve bağlantı noktalarını tanımlar ve uzantısı, uygulamaların bir API proxy'sine erişmek için kullandığı URL.
Sanal ana makine, API proxy'sine HTTP protokolü kullanılarak mı erişildiğini yoksa TLS kullanan şifrelenmiş HTTPS protokolü tarafından sağlanır. Sanal ana makineyi HTTPS kullanacak şekilde yapılandırırken ve TLS'de bir sanal ana makine oluşturur ve sanal ana makineyi anahtar deposu kullanacak şekilde yapılandırırsınız. ve Truststore gibi özellikler dahildir.
Daha fazla bilgi:
- TLS/SSL hakkında
- Edge ile TLS'yi kullanma
- Sanal ana makineler hakkında
- Private Cloud için sanal ana makineleri yapılandırma
- Sanal ana makine mülk referansı
- Anahtar depoları ve Truststore'lar
Sanal ana makine oluşturmak için gerekenler
Bir sanal ana makine oluşturmadan önce aşağıdaki bilgilere sahip olmanız gerekir:
- Sanal ana makinenin herkese açık alan adı. Örneğin, ekip arkadaşlarınızın
herkese açık ad
api.myCompany.com
,myapi.myCompany.com
vb. şeklindedir. Bu bilgiler sanal ana makineyi oluşturduğunuzda ve ayrıca sunucu için DNS kaydını oluşturduğunuzda kullanılır. sanal ana makine. -
Tek yönlü TLS için anahtar deposunun
şu:
- TLS sertifikası: bir sertifika yetkilisi (CA) tarafından imzalanmış bir sertifika veya son sertifikanın bir CA tarafından imzalandığı bir sertifika zinciridir.
- Özel anahtar - Edge, 2048 bite kadar anahtar boyutlarını destekler. Parola isteğe bağlıdır.
- İki yönlü TLS için bir anahtar deposuna ve istemcinin sertifikası ve isteğe bağlı olarak sertifikanın CA zincirini kontrol eder. Projenizin geri kalanı üzerindeki Sertifika bir CA tarafından imzalandı.
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, bir sanal makine tanımlamak için <SSLInfo>
öğesini kullanır
tek yönlü TLS yapılandırması için ana makine:
<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, <Enabled>
öğesi "true" (doğru) olarak ayarlanmıştır.
tek yönlü TLS'yi etkinleştirir ve <KeyStore>
ile <KeyAlias>
öğeleri anahtar deposunu belirtir
ve TLS bağlantısı tarafından kullanılan anahtar.
İki yönlü TLS'yi etkinleştirmek için <ClientAuthEnabled>
öğesini
true
ve bir güven deposu belirtin
<TrustStore>
kullanılarak
öğesine dokunun. Truststore, istemcinin sertifikasını ve isteğe bağlı olarak sertifikanın CA'sını barındırır
oluşturuyoruz.
Sanal ana makinede anahtar deposu ve güven deposu adının nasıl belirtileceğine karar verme
Yukarıdaki sanal ana makine örneğinde, anahtar deposunu bir referans kullanarak belirttiniz. CEVAP referans, anahtar deposu adını doğrudan girin.
Referans kullanmanın avantajı, referansın değerini değiştirerek sanal ana makine tarafından kullanılan anahtar deposudur. Bunun nedeni, genellikle mevcut anahtar deposundaki sertifikanın yakında sona erecektir. Referansın değerini değiştirmek, yeniden başlatmanızı gerektirmez uç yönlendirici.
Alternatif olarak, sanal ana makinede değişmez anahtar deposu adı kullanabilirsiniz. Ancak, sanal ana makineyi değiştirerek anahtar deposu adını değiştirin. Uç Yönlendiriciler'i yeniden başlatmanız gerekir.
Anahtar depolarına ve güven deposuna referansların kullanımıyla ilgili kısıtlamalar
Anahtar depolarına referanslar kullanırken aşağıdaki kısıtlamayı dikkate almanız gerekir. güven depoları:
- Sanal ana makinelerde anahtar deposu ve güven deposu referanslarını yalnızca SNI ve Apigee Yönlendiricilerinde SSL'yi sonlandırmanız gerekir.
- Apigee Yönlendiricilerinin önünde bir yük dengeleyiciniz varsa ve bu yönlendiricide TLS'yi sonlandırırsanız yük dengeleyici ile sanal makinede anahtar deposu ve güven deposu referanslarını ana makineler.
Anahtar deposu ve güven deposu referanslarını kullanmak için mevcut bir sanal ana makineyi değiştirme
Apigee, sanal ana makinelerin anahtar depolarına ve güven depolarına referans vermesini önemle tavsiye eder. Referanslar, sanal ana makine tarafından kullanılan anahtar deposunu ve güven deposunu veya Edge Yönlendiricileri'ni yeniden başlatmanız gerekiyor.
Sanal ana makineleriniz şu anda anahtar deposunun tam adını veya güven deposu varsa bunları referans kullanacak şekilde dönüştürebilirsiniz. Bunun için sanal ana makineyi, bulun ve ardından Uç Yönlendiriciler'i yeniden başlatın.
Edge 4.15.07 ve önceki sürümler için TLS şifrelerini ve protokollerini ayarlama
Edge'in 4.15.07 ve önceki sürümlerini kullanıyorsanız TLS protokolünü ve şifreleri ayarlarsınız
<Ciphers>
ve <Protocols>
alt etiketleri kullanılarak sanal ana makine tarafından kullanılır.
<SSLInfo>
etiketi. 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ı girin. Örneğin, Java 8 için bkz.
http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#ciphersuites.
Edge 4.16.01 - 4.16.09 arası için TLS şifrelerini ve protokollerini belirtme
Edge 4.16.01 ile 4.16.09 arasındaki sürümlerde, sanal ana makineler için varsayılan şifreleri ve protokolleri ayarlarsınız tüm dünyada geçerli. Daha sonra bu varsayılan ayarlar, 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.protocols
jetonunu kullanın - Yönlendirici için varsayılan şifreleri belirtmek için
conf_load_balancing_load.balancing.driver.server.ssl.ciphers
jetonunu kullanın
conf_load_balancing_load.balancing.driver.server.ssl.protocols
jetonunun varsayılan değeri
şununla eşleşir:
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. Bir jeton için boşlukla ayrılmış değer listesi.
conf_load_balancing_load.balancing.driver.server.ssl.ciphers
jetonunun varsayılan değeri
şununla eşleşir:
conf_load_balancing_load.balancing.driver.server.ssl.ciphers=HIGH:!aNULL:!MD5:!DH+3DES:!RSA+3DES
Bu ayar şunları belirtir:
- 128 bit veya daha yüksek anahtar uzunluğu gerekir (
HIGH
). - Kimlik doğrulaması olmayan şifreleri hariç tut (
!aNULL
) - MD5 kullanan şifre paketlerini hariç tut (
!MD5
) - DH kullanan şifre paketlerini (anonim DH, geçici DH ve sabit DH dahil) hariç tutun VE
üçlü DES (
!DH+3DES
) - RSA anahtar değişimi VE üçlü DES kullanan şifre paketlerini hariç tut (
!RSA+3DES
)
Bu jetonun izin verdiği söz dizimi ve değerlerle ilgili bilgi için OpenSSL şifreleri konusuna bakın. Bu jetonun, AES128-SHA256 gibi OpenSSL şifre adlarını kullandığını, Java/JSSE şifre adları, ör. TLS_RSA_WITH_AES_128_CBC_SHA256.
Yönlendiricinin jetonunu ayarlamak için:
/opt/apigee/customer/application/router.properties
sütununu düzenleyin dosyası olarak kaydedebilirsiniz. Dosya yoksa dosyayı oluşturun.conf_load_balancing_load.balancing.driver.server.ssl.ciphers
cihazını ayarlayın jeton. Örneğin, yalnızca TLSv1.2'yi belirtmek ve önceden paylaşılan anahtarları kullanarak şifre paketlerini hariç tutmak için ekle!PSK
: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.properties
dosyasının şuna ait olduğundan emin olun: Apigee:chown apigee:apigee /opt/apigee/customer/application/router.properties
- Uç Yönlendirici'yi 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
.
Ayar Edge'in 4.17.01 ve sonraki sürümleri için TLS sanal ana makine parametreleri
Edge'in 4.17.01 ve sonraki sürümünü kullanıyorsanız bir
bağımsız bir sanal ana makine (örneğin, TLS protokolü ve şifre gibi) <Properties>
<VirtualHost>
kapanış etiketinin hemen öncesine yapıştırın. Bu etiketler, Sanal ana makine mülkü referansı bölümünde açıklanmaktadı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 için OpenSSL şifreleri başlıklı makaleyi inceleyin.
Bu jetonun, AES128-SHA256 gibi OpenSSL şifre adlarını kullandığını ve
Java/JSSE şifre adları, örneğin TLS_RSA_WITH_AES_128_CBC_SHA256.
HTTPS kullanan bir sanal ana makine oluşturma
Bu örnekte, bir referans kullanılarak sanal ana makineye giden anahtar deposu belirtilmektedir. Bir referans, Yönlendiricileri yeniden başlatmanıza gerek kalmadan anahtar deposunu değiştirmenize olanak tanır.
Sanal ana makine oluşturmak için aşağıdaki prosedürü uygulayın:
- myTestKeystore adında bir anahtar deposu oluşturmak ve yapılandırmak için yordamı burada bulabilirsiniz: Anahtar depoları ve Truststores Anahtar deposunun bir takma ad adı kullandığından emin olun myKeyAlias'tan yararlanabilirsiniz.
-
Referansı oluşturmak için aşağıdaki POST API çağrısını kullanın yukarıda oluşturduğunuz anahtar deposuna keystoreref adlı
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 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/keystoreref -u uname:password
Sanal ana makineyi oluşturmak için Create a Virtual Host API (Sanal Ana Makine) API'si, burada
<ms-IP>
, IP adresidir. Yönetim Sunucusu düğümünün alan adını içerir.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
<HTTPConnection>
ProxyEndpoint. Sanal ana makine, tüm yeni API proxy'lerine otomatik olarak eklenir.Sanal ana makine oluşturduktan sonra API proxy'sini güncelleme başlıklı makaleye göz atın. Sanal ana makineler hakkında.
Bir API proxy'sini sanal ana makineyi kullanacak şekilde güncelledikten ve ana makine için DNS kaydını oluşturduktan sonra takma adı kullanıyorsanız API proxy'sine aşağıda gösterildiği gibi erişebilirsiniz:
https://apiTLS.myCompany.com/v1/{project-base-path}/{resource-path}
Örneğin:
https://apiTLS.myCompany.com/v1/weather/forecastrss?w=12797282
Referans oluşturma ve değiştirme anahtar deposuna veya güven deposuna
İsteğe bağlı olarak sanal ana makineyi, anahtar deposuna yönelik bir referans kullanacak şekilde yapılandırabilirsiniz veya güven deposu kullanın. Referans kullanmanın avantajı, o referansı TLS sertifikasını yeniden başlatmak zorunda kalmadan güncellemek için farklı bir anahtar deposuna veya güven deposuna işaret et Yönlendirici.
Örneğin aşağıda, anahtar deposuna ilişkin bir referans kullanan bir sanal ana makine gösterilmiştir:
<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
Referansı daha sonra farklı bir anahtar deposuna işaret edecek şekilde değiştirmek için takma adın 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