Private Cloud için Apigee Edge 4.54.00'te varsayılan olarak yönlendirici (Nginx) ve mesaj işleyici (Java 21), TLSv1.2 ve TLSv1.3'yi etkinleştirir. İşletmenizin ihtiyaçlarına ve güvenlik uygulamalarına bağlı olarak, izin verilen protokolleri kısıtlamak veya eski protokolleri yeniden etkinleştirmek isteyebilirsiniz. Bu belgede, yönlendirici ve mesaj işleyicideki kuzey ve güney trafiği için TLS protokollerinin nasıl yapılandırılacağı açıklanmaktadır.
Yönlendirici için protokolü ayrı ayrı sanal ana makineler için de ayarlayabilirsiniz. Daha fazla bilgi için Private Cloud için bir API'ye TLS erişimini yapılandırma başlıklı makaleyi inceleyin.
Mesaj İşleyici için protokolü tek bir TargetEndpoint'e ayarlayabilirsiniz. Daha fazla bilgi için TLS'yi uçtan arka uca (Cloud ve Private Cloud) yapılandırma başlıklı makaleyi inceleyin.
Yönlendiricide TLS protokolünü ayarlama
Aşağıdaki özellikler, kuzeye doğru iletişim için yönlendiricide istediğiniz TLS protokollerini ayarlamanıza yardımcı olur.
Yönlendirici'de TLS protokolünü ayarlamak için router.properties dosyasındaki özellikleri ayarlayın:
router.propertiesdosyasını bir düzenleyicide açın. Dosya yoksa oluşturun:vi /opt/apigee/customer/application/router.properties
- Özellikleri istediğiniz gibi ayarlayın:
# Possible values are space-delimited list of: TLSv1 TLSv1.1 TLSv1.2 TLSv1.3 conf_load_balancing_load.balancing.driver.server.ssl.protocols=TLSv1.2
- Değişikliklerinizi kaydedin.
- Özellikler dosyasının
apigeekullanıcısına ait olduğundan emin olun:chown apigee:apigee /opt/apigee/customer/application/router.properties
- Yönlendiriciyi yeniden başlatın:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- Nginx dosyasını inceleyerek protokolün doğru şekilde güncellendiğini doğrulayın
/opt/nginx/conf.d/0-default.conf:cat /opt/nginx/conf.d/0-default.conf
ssl_protocolsdeğerininTLSv1.2olduğundan emin olun. - Sanal ana makineyle çift yönlü TLS kullanıyorsanız sanal ana makinede TLS protokolünü de Özel Bulut için bir API'ye TLS erişimini yapılandırma bölümünde açıklandığı şekilde ayarlamanız gerekir.
İleti işlemcisinde TLS protokolünü ayarlama
Aşağıdaki özellikler, güney yönlü iletişim için Mesaj İşleyici'de istediğiniz TLS protokollerini ayarlamanıza yardımcı olur. Bu bölümde, devre dışı bırakılmış TLS protokolleri ve şifreleriyle nasıl çalışılacağı da açıklanmaktadır.
Mesaj İşleyicisinde TLS protokolünü ayarlamak için message-processor.properties dosyasında özellikleri ayarlayın:
message-processor.propertiesdosyasını bir düzenleyicide açın. Dosya yoksa oluşturun:vi /opt/apigee/customer/application/message-processor.properties
- Özellikleri aşağıdaki söz dizimini kullanarak yapılandırın:
# Possible values are a comma-delimited list of TLSv1, TLSv1.1, TLSv1.2, and TLSv1.3 conf/system.properties+https.protocols=[TLSv1][,TLSv1.1][,TLSv1.2][,TLSv1.3] # Possible values are a comma-delimited list of SSLv3, TLSv1, TLSv1.1, TLSv1.2, TLSv1.3 # SSLv3 is required conf_jvmsecurity_jdk.tls.disabledAlgorithms=SSLv3[,TLSv1][,TLSv1.1][,TLSv1.2][,TLSv1.3] # Specify the ciphers that the Message Processor supports. (You must separate ciphers with a comma.): conf_message-processor-communication_local.http.ssl.ciphers=cipher[,...]
Örneğin:
conf/system.properties+https.protocols=TLSv1.2 conf_jvmsecurity_jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1 conf_message-processor-communication_local.http.ssl.ciphers=TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
İlgili özelliklerin tam listesi için Yönlendirici ile Mesaj İşleyici arasında TLS yapılandırma başlıklı makaleyi inceleyin.
- Değişikliklerinizi kaydedin.
- Özellikler dosyasının
apigeekullanıcısına ait olduğundan emin olun:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Mesaj İşleyici'yi yeniden başlatın:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Arka uçla iki yönlü TLS kullanıyorsanız sanal ana makinedeki TLS protokolünü TLS'yi Edge'den arka uca (Cloud ve Private Cloud) yapılandırma bölümünde açıklandığı gibi ayarlayın.
Eski şifreler ve TLS protokolleriyle çalışma: Eski şifreler veya protokollerle çalışmak istiyorsanız aşağıdaki bölümlere bakın.
Eski TLS ile çalışma
Java 21'de, eski TLS protokolleri (TLSv1,
TLSv1.1 ve SSLv3) ile zayıf Diffie-Hellman anahtarları
(DH keySize < 1024), jdk.tls.disabledAlgorithms içinde varsayılan olarak devre dışı bırakılmıştır. Bu özellikleri etkinleştirmek için aşağıdaki seçeneklerden birini kullanın:
- 1. seçenek: Arka uç protokollerini modernleştirin: Arka uç sunucularını TLS 1.2 veya TLS 1.3'ü destekleyecek şekilde güncelleyin ve Diffie-Hellman parametre boyutlarının 2.048 bit veya daha büyük (
>= 2048bit) olduğundan emin olun. - B seçeneği: CwC kullanarak eski protokolleri yeniden etkinleştirme: Yapılandırmalı kod (CwC) kullanarak
/opt/apigee/customer/application/message-processor.propertiesiçindekiconf_jvmsecurity_jdk.tls.disabledAlgorithmspolitikasındanTLSv1, TLSv1.1değerini kaldırarak eski TLS 1.0 veya TLS 1.1 arka uçlarıyla uyumluluğu koruyun:# Re-enable TLS 1.0 and TLS 1.1 for legacy backend connectivity conf_jvmsecurity_jdk.tls.disabledAlgorithms=SSLv3, DTLSv1.0, RC4, DES, MD5withRSA, DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, ECDH, TLS_RSA_*, rsa_pkcs1_sha1 usage HandshakeSignature, ecdsa_sha1 usage HandshakeSignature, dsa_sha1 usage HandshakeSignature, include jdk.disabled.namedCurves
Statik RSA şifreleriyle çalışma
Apigee Edge for Private Cloud 4.54.00 sürümü Java 21'de çalışır.
Geçici Diffie-Hellman anahtar değişimi (ECDHE veya DHE) içermeyen statik RSA şifre paketleri (TLS_RSA_*) jdk.tls.disabledAlgorithms'de (ör. TLS_RSA_WITH_AES_128_CBC_SHA veya TLS_RSA_WITH_AES_256_CBC_SHA) varsayılan olarak devre dışıdır. Statik RSA şifre paketleri gerektiren arka uçları desteklemek için aşağıdaki seçeneği kullanın:
- CwC kullanarak statik RSA şifrelerini yeniden etkinleştirme:
Yapılandırmayla kod (CwC) kullanarak
/opt/apigee/customer/application/message-processor.propertiesiçindekiconf_jvmsecurity_jdk.tls.disabledAlgorithms'denTLS_RSA_*'ı kaldırarak eski arka uçlarla uyumluluğu koruyun:# Re-enable Static RSA ciphers for backward compatibility with legacy Java 8 backends conf_jvmsecurity_jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, DTLSv1.0, RC4, DES, MD5withRSA, DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, ECDH, rsa_pkcs1_sha1 usage HandshakeSignature, ecdsa_sha1 usage HandshakeSignature, dsa_sha1 usage HandshakeSignature, include jdk.disabled.namedCurves
Özellikleri değiştirdikten sonra apigee-service komutunu kullanarak Mesaj İşleyici'yi yeniden başlatın:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
Bir ana makine için TLS 1.3'ü etkinleştirme
Bu bölümde, belirli sanal ana makineler için TLS 1.3'ün nasıl etkinleştirileceği açıklanmaktadır. TLS 1.3'ü etkinleştirmek için Yönetim Sunucusu düğümlerinde aşağıdaki adımları uygulayın:
- Her Yönetim Sunucusu düğümünde
/opt/apigee/customer/application/management-server.propertiesdosyasını düzenleyin ve aşağıdaki satırı ekleyin (dosya yoksa oluşturun):conf_virtualhost_virtual.host.allowed.protocol.list=TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
Bu dosya için protokoller virgülle ayrılmış ve büyük/küçük harfe duyarlıdır.
- Dosyayı kaydedin.
- Dosyanın
apigeekullanıcısına ait olduğundan emin olun:chown apigee:apigee /opt/apigee/customer/application/management-server.properties
- Yönetim sunucusunu yeniden başlatın:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- Önceki adımları tüm Yönetim Sunucusu düğümlerinde tek tek tekrarlayın.
- Aşağıdaki mülkle sanal ana makine oluşturun (veya mevcut bir sanal ana makineyi güncelleyin). Protokollerin boşlukla ayrıldığını ve büyük/küçük harfe duyarlı olduğunu unutmayın:
"properties": { "property": [ { "name": "ssl_protocols", "value": "TLSv1 TLSv1.1 TLSv1.2 TLSv1.3" } ] }Aşağıdaki örnekte bu özelliğe sahip örnek bir vhost gösterilmektedir:
{ "hostAliases": [ "api.myCompany,com", ], "interfaces": [], "listenOptions": [], "name": "secure", "port": "443", "retryOptions": [], "properties": { "property": [ { "name": "ssl_protocols", "value": "TLSv1 TLSv1.1 TLSv1.2 TLSv1.3" } ] }, "sSLInfo": { "ciphers": [], "clientAuthEnabled": "false", "enabled": "true", "ignoreValidationErrors": false, "keyAlias": "myCompanyKeyAlias", "keyStore": "ref://myCompanyKeystoreref", "protocols": [] }, "useBuiltInFreeTrialCert": false }
TLS 1.3'ü test etme
TLS 1.3'ü test etmek için aşağıdaki komutu girin:
curl -v --tlsv1.3 "https://api.myCompany,com/testproxy"
TLS 1.3'ü yalnızca bu protokolü destekleyen istemcilerde test edebileceğinizi unutmayın. TLS 1.3 etkinleştirilmemişse aşağıdakine benzer bir hata mesajı görürsünüz:
sslv3 alert handshake failure