Edge для частного облака на RHEL 8.X с поддержкой FIPS

В этом разделе приведены рекомендации по включению режима FIPS в RHEL 8, обеспечивающему безопасную и совместимую среду для Edge для частного облака версии 4.53.00 или выше.

Предварительная установка

Убедитесь, что на ваших узлах включен FIPS, а также другие необходимые стандартные параметры конфигурации, перечисленные в документации «Обзор установки Edge» .

fips-mode-setup --check  
FIPS mode is enabled.  # Command output

Если режим FIPS в настоящее время отключен, обратитесь к официальной документации Red Hat за инструкциями по его включению: Переключение RHEL 8 в режим FIPS .

Требования Java

Используемую вами Java следует загрузить из репозитория Red Hat, чтобы убедиться, что ее модули безопасности совместимы с FIPS, что позволяет реализовать ограничения, специфичные для FIPS, посредством безопасности Java.

Установка

В справочнике по файлу конфигурации Edge установите FIPS_OS=true на каждом узле. Вы можете выполнить общие шаги по установке Edge для частного облака, как обычно.

Формат закрытого ключа

Только формат PKCS12/PFX можно использовать для загрузки закрытых ключей в хранилища ключей Apigee для использования в ваших прокси-серверах API или виртуальных хостах. Инструкции по созданию файла см. в разделе Преобразование сертификатов в поддерживаемый формат .

Общие операции TLS

При использовании Edge for Private Cloud 4.53.00 или более поздней версии в RHEL 8.X с поддержкой FIPS большинство конфигураций компонентов Edge, связанных с TLS, необходимо будет выполнять через хранилища ключей формата PKCS12 или BCFKS.

Дополнительные сведения о настройке TLS см. в документации по FIPS или примечаниях в соответствующих статьях. В приложении перечислены некоторые полезные команды, которые можно использовать для создания этих хранилищ ключей.

Хранилище ключей/доверенных сертификатов Java по умолчанию

Когда Edge for Private Cloud 4.53.00 или более поздней версии используется в RHEL 8.X с поддержкой FIPS, ваш процессор сообщений, сервер управления и другие компоненты Edge-* полагаются на хранилище доверенных сертификатов и хранилище ключей по умолчанию, поставляемые вместе с продуктом.

Они содержат сертификаты CA, которым ваше приложение доверяет по умолчанию. Если вы хотите использовать собственное хранилище, содержащее сертификаты CA, выполните следующую процедуру:

  1. Создайте файл cacerts в формате BCFKS, содержащий все сертификаты CA, которым вы хотите доверять. Убедитесь, что пароль хранилища ключей и пароль ключа совпадают. Более подробную информацию можно найти в приложении .
  2. Поместите файл в соответствующий путь и убедитесь, что он доступен для чтения пользователю apigee:
    cp my-cacerts.bcfks /opt/apigee/customer/application/my-cacerts.bcfks
    chown apigee:apigee /opt/apigee/customer/application/my-cacerts.bcfks
  3. Создайте (или отредактируйте) соответствующий файл конфигурации на основе компонента, с которым вы работаете:
    Компонент Файл
    Edge-сервер-управления $/opt/apigee/customer/application/management-server.properties
    Edge-сообщений-процессор $/opt/apigee/customer/application/message-processor.properties
    Edge-маршрутизатор $/opt/apigee/customer/application/router.properties
    Edge-Postgres-сервер $/opt/apigee/customer/application/postgres-server.properties
    Edge-QPID-сервер $/opt/apigee/customer/application/qpid-server.properties
  4. Добавьте в файл следующие строки:
    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. Убедитесь, что файл конфигурации принадлежит пользователю apigee и доступен для чтения:
    chown apigee:apigee $opt/apigee/customer/application/<file>.properties
  6. Перезапустите компонент:
    /opt/apigee/apigee-service/bin/apigee-service <component> restart

Приложение

Примеры команд операции с хранилищем ключей BCFKS

Приведенная ниже команда создает хранилище ключей BCFKS с парой самозаверяющих ключей и сертификатов:

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 остаются теми же, что обычно используются, но в команду 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

Аргументы Keytool

Ключевой аргумент Описание
-storetype Установите тип магазина BCFKS .
-providerpath Укажите путь к bc-fips-XXXX.jar . Эта версия может измениться в будущих выпусках OPDK. Используйте версию, поставляемую Apigee, или загрузите ее из репозитория Bouncycastle. Для OPDK 4.53 путь должен быть /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-1.0.2.4.jar / Thirdparty/bc-fips-1.0.2.4.jar .
-providerclass Установите для этого параметра значение org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider .
-providername Установите для этого параметра значение BCFIPS .

Подобные команды keytool можно использовать для импорта или экспорта сертификатов и/или ключей из хранилища ключей формата BCFKS или в него. Дополнительную информацию о том, как работать с BCFKS, можно найти в документации BouncyCastle .

Магазин PKCS12

Для создания хранилища PKCS12 можно использовать команды openssl :

# 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

Если у вас есть собственный закрытый ключ и сертификат и вам необходимо преобразовать их в формат PKCS12, см. раздел Преобразование сертификатов в поддерживаемый формат .