Bu bölümde, RHEL 8'de FIPS modunun etkinleştirilmesiyle ilgili yönergeler verilmektedir. Bu sayede, Private Cloud için Edge'in 4.53.00 veya daha yeni sürümlerinde güvenli ve uyumlu bir ortam sağlanır.
Önceden yükleme
Edge Installation Overview (Edge Kurulumuna Genel Bakış) dokümanında listelenen diğer standart yapılandırma ön koşullarıyla birlikte düğümlerinizde FIPS'nin etkinleştirildiğinden emin olun.
fips-mode-setup --check FIPS mode is enabled. # Command output
FIPS modu şu anda devre dışıysa nasıl etkinleştireceğinizle ilgili talimatlar için resmi Red Hat belgelerine bakın: RHEL 8'i FIPS moduna geçirme.
Java gereksinimleri
Kullandığınız Java'nın, güvenlik modüllerinin FIPS uyumlu olmasını sağlamak için Red Hat'in deposundan indirilmesi gerekir. Bu sayede, Java güvenliği aracılığıyla FIPS'e özgü kısıtlamalar etkinleştirilir.
Kurulum
Edge Yapılandırma Dosyası Referansı'nda her düğümde FIPS_OS=true değerini ayarlayın. Edge for Private Cloud'un genel yükleme adımlarını her zamanki gibi uygulayabilirsiniz.
Özel anahtar biçimi
API proxy'lerinizde veya sanal ana makinelerinizde kullanılmak üzere Apigee anahtar depolarına özel anahtarlar yüklemek için yalnızca PKCS12/PFX biçimi kullanılabilir. Dosya oluşturma konusunda yardım için Sertifikaları desteklenen biçime dönüştürme başlıklı makaleyi inceleyin.
Genel TLS işlemleri
FIPS etkin RHEL 8.X veya Rocky 8.X'te Edge for Private Cloud 4.53.00 veya sonraki sürümler kullanılırken Edge'in TLS ile ilgili bileşen yapılandırmalarının çoğu PKCS12 veya BCFKS biçimli anahtar depoları aracılığıyla yapılmalıdır.
TLS yapılandırması hakkında daha fazla bilgi edinmek için FIPS'e özel dokümanlara veya ilgili makalelerdeki notlara bakın. Ek bölümünde, bu anahtar depolarını oluşturmak için kullanılabilecek bazı faydalı komutlar listelenmiştir.
Varsayılan Java anahtar deposu/güven deposu
Edge for Private Cloud 4.53.00 veya sonraki sürümler FIPS etkin RHEL 8.X ya da Rocky 8.X üzerinde kullanıldığında ileti işlemciniz, yönetim sunucunuz ve diğer edge-* bileşenleriniz ürünle birlikte sağlanan varsayılan güven deposuna ve anahtar deposuna bağlıdır.
Bunlar, uygulamanızın varsayılan olarak güvendiği CA sertifikalarını içerir. CA sertifikaları içeren kendi mağazanızı kullanmak istiyorsanız aşağıdaki prosedürü uygulayın:
-
Güvenmek istediğiniz tüm CA sertifikalarını içeren bir BCFKS biçimi
cacertsdosyası oluşturun. Anahtar deposu şifresi ile anahtar şifresinin aynı olduğundan emin olun. Daha fazla ayrıntı için ek bölümüne bakın. -
Dosyayı uygun bir yola yerleştirin ve apigee kullanıcısı tarafından okunabildiğinden emin olun:
cp my-cacerts.bcfks /opt/apigee/customer/application/my-cacerts.bcfks chown apigee:apigee /opt/apigee/customer/application/my-cacerts.bcfks
-
Çalıştığınız bileşene göre uygun yapılandırma dosyasını oluşturun (veya düzenleyin):
Bileşen Dosya edge-management-server $/opt/apigee/customer/application/management-server.properties edge-message-processor $/opt/apigee/customer/application/message-processor.properties edge-router $/opt/apigee/customer/application/router.properties edge-postgres-server $/opt/apigee/customer/application/postgres-server.properties edge-qpid-server $/opt/apigee/customer/application/qpid-server.properties -
Dosyaya aşağıdaki satırları ekleyin:
conf_system_javax.net.ssl.trustStore=<PATH to bcfks cacerts> conf_system_javax.net.ssl.trustStorePassword=changeme conf_system_javax.net.ssl.keyStore=<PATH to bcfks cacerts> conf_system_javax.net.ssl.keyStoreType=BCFKS conf_system_javax.net.ssl.keyStorePassword=changeme
-
Yapılandırma dosyasının apigee kullanıcısına ait olduğundan ve bu kullanıcı tarafından okunabildiğinden emin olun:
chown apigee:apigee $opt/apigee/customer/application/<file>.properties
-
Bileşeni yeniden başlatın:
/opt/apigee/apigee-service/bin/apigee-service <component> restart
Ek
BCFKS anahtar deposu işlemi örnek komutları
Aşağıdaki komut, kendinden imzalı anahtar ve sertifika çifti içeren bir BCFKS anahtar deposu oluşturur:
keytool -genkeypair -keyalg RSA -alias node0 -validity 365 -keystore keystore.node0 \ -storepass keypass -keypass keypass -v \ -dname "EMAILADDRESS=youremail@domain.com, CN=yourcn, OU=yourou, O=youro, L=yourl, C=yourc" \ -storetype BCFKS -providerpath /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-1.0.2.4.jar \ -providerclass org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider -providername BCFIPS
Keytool komutları genellikle kullanılanlarla tutarlı olmaya devam eder ancak keytool komutuna aşağıdaki seçenekler eklenmelidir:
--storetype BCFKS -providerpath /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-1.0.2.4.jar -providerclass org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider -providername BCFIPS
Keytool Bağımsız Değişkenleri
| Keytool Bağımsız Değişkeni | Açıklama |
|---|---|
-storetype |
Mağaza türünü BCFKS olarak ayarlayın. |
-providerpath |
bc-fips-XXXX.jar dosyasının yolunu belirtin. Bu sürüm, gelecekteki OPDK sürümlerinde değişebilir. Apigee tarafından gönderilen sürümü kullanın veya Bouncycastle'ın depolarından indirin. OPDK 4.53 için yol /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-1.0.2.4.jar olmalıdır. |
-providerclass |
Bunu org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider olarak ayarlayın. |
-providername |
Bunu BCFIPS olarak ayarlayın. |
BCFKS biçimindeki bir anahtar deposundan veya anahtar deposuna sertifika ve/veya anahtar içe ya da dışa aktarmak için benzer keytool komutları kullanılabilir. BCFKS ile çalışma hakkında daha fazla bilgi için BouncyCastle belgelerini inceleyin.
PKCS12 Store
PKCS12 deposu oluşturmak için openssl komutları kullanılabilir:
# Generate a self-signed private key and certificate openssl req -x509 -newkey rsa:2048 -keyout private.key -out certificate.pem -sha256 -days 36500 -nodes -subj "/C=yourc/ST=yourst/L=yourl/O=youro/OU=yourou/CN=cn/emailAddress=email" # Package the above generated key and cert into a PKCS12 openssl pkcs12 -export -clcerts -in certificate.pem -inkey private.key -out keystore.pfx -name myalias
Kendi özel anahtarınız ve sertifikanız varsa ve bunları PKCS12 biçimine dönüştürmeniz gerekiyorsa Sertifikaları desteklenen biçime dönüştürme başlıklı makaleyi inceleyin.