Edge untuk Private Cloud pada RHEL 8.X berkemampuan FIPS

Artikel ini berisi detail dan petunjuk yang ditujukan untuk pelanggan Edge for Private Cloud yang menggunakan versi 4.53.00 atau yang lebih baru, yang beroperasi di RHEL 8.X yang mengaktifkan FIPS.

Pra-penginstalan

Pastikan FIPS diaktifkan di node Anda selain prasyarat konfigurasi standar lainnya yang tercantum dalam dokumentasi Edge for Private Cloud.

fips-mode-setup --check
FIPS mode is enabled.

Jika mode FIPS saat ini dinonaktifkan, lihat dokumentasi Red Hat resmi untuk mengetahui petunjuk cara mengaktifkannya:

Persyaratan Java

Java yang Anda gunakan harus didownload dari repositori Red Hat untuk memastikan bahwa modul keamanan Java mendukung FIPS dan dapat menerapkan batasan khusus FIPS melalui keamanan Java.

Penginstalan

Dalam referensi file konfigurasi penginstalan senyap, tetapkan FIPS_OS=true di setiap node. Anda dapat mengikuti langkah-langkah penginstalan umum untuk Edge untuk Private Cloud seperti biasa.

Format kunci pribadi

Hanya format PKCS12/PFX yang dapat digunakan untuk mengupload kunci pribadi ke keystore Apigee untuk digunakan di proxy API atau host virtual Anda. Lihat Mengonversi sertifikat ke format yang didukung untuk mendapatkan bantuan dalam membuat file.

Operasi TLS umum

Saat menggunakan Edge for Private Cloud 4.53.00 atau yang lebih baru di RHEL 8.X yang mengaktifkan FIPS, sebagian besar konfigurasi komponen terkait TLS di Edge harus dilakukan melalui keystore format PKCS12 atau BCFKS. Lihat dokumentasi khusus FIPS atau catatan pada artikel yang relevan untuk konfigurasi TLS guna mendapatkan detail selengkapnya. Lampiran mencantumkan beberapa perintah bermanfaat yang dapat digunakan untuk membuat keystore ini.

Keystore/truststore Java default

Jika Edge for Private Cloud 4.53.00 atau yang lebih baru dioperasikan di RHEL 8.X yang mengaktifkan FIPS, pemroses pesan, server pengelolaan, dan komponen edge-* lainnya mengandalkan truststore dan keystore default yang disertakan dengan produk. File ini berisi sertifikat CA yang akan dipercaya aplikasi Anda secara default. Jika Anda ingin mengubahnya ke penyimpanan Anda sendiri yang berisi sertifikat CA, ikuti prosedur di bawah ini:

  1. Buat file cacerts format BCFKS yang berisi semua sertifikat CA yang ingin Anda percayai. Pastikan sandi keystore dan sandi kunci sama. Lihat lampiran untuk mengetahui detail selengkapnya.
  2. Tempatkan file di jalur yang sesuai dan pastikan file tersebut dapat dibaca oleh pengguna apigee:
    cp my-cacerts.bcfks /opt/apigee/customer/application/my-cacerts.bcfks
    chown apigee:apigee /opt/apigee/customer/application/my-cacerts.bcfks
  3. Buat (atau edit) file konfigurasi yang sesuai berdasarkan komponen yang Anda gunakan:
    Komponen File
    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
  4. Tambahkan baris berikut ke file:
          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
          
  5. Pastikan file konfigurasi dimiliki dan dapat dibaca oleh pengguna apigee:
    chown apigee:apigee $opt/apigee/customer/application/<file>.properties
  6. Mulai ulang komponen:
    /opt/apigee/apigee-service/bin/apigee-service  restart

Lampiran

Contoh perintah operasi keystore BCFKS

Perintah di bawah ini akan membuat keystore BCFKS dengan pasangan kunci dan sertifikat yang ditandatangani sendiri:

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

Perintah keytool tetap sama dengan yang biasanya dijalankan, tetapi opsi berikut perlu ditambahkan ke perintah keytool:

--storetype BCFKS -providerpath /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-1.0.2.4.jar
-providerclass org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider 
-providername BCFIPS

Argumen Keytool

Argumen Keytool Deskripsi
-storetype Jenis penyimpanan adalah BCFKS.
-providerpath Jalur ke bc-fips-XXXX.jar. Versi jar ini dapat berubah di versi OPDK mendatang. Versi apa pun yang dikirimkan oleh Apigee harus digunakan. Anda juga dapat mendownload jar dari repositori Bouncycastle. Mulai rilis OPDK 4.53, ini harus berupa /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-1.0.2.4.jar.
-providerclass Harus ditetapkan ke org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider.
-providername Harus disetel ke BCFIPS.

Perintah keytool serupa dapat digunakan untuk mengimpor atau mengekspor sertifikat dan/atau kunci dari atau ke keystore format BCFKS. Untuk informasi selengkapnya tentang cara menggunakan BCFKS, lihat dokumentasi BouncyCastle.

Penyimpanan PKCS12

Untuk membuat penyimpanan PKCS12, perintah openssl dapat digunakan:

# 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

Jika Anda memiliki kunci pribadi dan sertifikat sendiri dan ingin mengemasnya ke dalam PKCS12, lihat Mengonversi sertifikat ke format yang didukung.