В этом разделе приведены инструкции по включению режима FIPS в RHEL 8, чтобы обеспечить безопасную и соответствующую требованиям среду для Edge for Private Cloud версии 4.53.00 или более поздней.
Предустановка
Убедитесь, что на узлах включен режим FIPS и выполнены другие стандартные требования к конфигурации, перечисленные в документации Обзор установки Edge.
fips-mode-setup --check FIPS mode is enabled. # Command output
Если режим FIPS отключен, следуйте инструкциям в официальной документации Red Hat: Как перевести RHEL 8 в режим FIPS.
Требования к Java
Чтобы обеспечить соответствие модулей безопасности требованиям FIPS и включить ограничения FIPS с помощью Java Security, скачайте Java из репозитория Red Hat.
Установка
В справочнике по файлу конфигурации Edge задайте значение FIPS_OS=true для каждого узла. Вы можете следовать общим инструкциям по установке Edge для частного облака.
Формат закрытого ключа
Для загрузки закрытых ключей в хранилища ключей Apigee, которые используются в прокси API или виртуальных хостах, можно использовать только формат PKCS12/PFX. Инструкции по созданию файла приведены в разделе Как преобразовать сертификаты в поддерживаемый формат.
Общие операции TLS
При использовании Edge для частного облака версии 4.53.00 или более поздней в RHEL 8.X с поддержкой FIPS большинство конфигураций компонентов Edge, связанных с TLS, необходимо выполнять с помощью хранилищ ключей в формате PKCS12 или BCFKS.
Подробную информацию о конфигурации TLS можно найти в документации по FIPS или в примечаниях к статьям, посвященным этой теме. В приложении перечислены полезные команды, которые можно использовать для создания хранилищ ключей.
Хранилище ключей и доверенных сертификатов Java по умолчанию
Если Edge для частного облака версии 4.53.00 или более поздней используется в RHEL 8.X с поддержкой FIPS, процессор сообщений, сервер управления и другие компоненты edge-* полагаются на хранилище доверенных сертификатов и хранилище ключей, которые по умолчанию предоставляются вместе с продуктом.
Они содержат сертификаты ЦС, которым ваше приложение доверяет по умолчанию. Если вы хотите использовать собственное хранилище сертификатов ЦС, выполните следующие действия:
-
Создайте файл формата BCFKS
cacerts, содержащий все сертификаты ЦС, которым вы хотите доверять. Убедитесь, что пароль хранилища ключей и пароль ключа совпадают. Подробнее о приложении… -
Поместите файл в подходящий путь и убедитесь, что пользователь apigee может его прочитать:
cp my-cacerts.bcfks /opt/apigee/customer/application/my-cacerts.bcfks chown apigee:apigee /opt/apigee/customer/application/my-cacerts.bcfks
-
Создайте или измените нужный файл конфигурации в зависимости от компонента, с которым вы работаете:
Компонент Файл 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 -
Добавьте в файл следующие строки:
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
-
Убедитесь, что файл конфигурации принадлежит пользователю apigee и доступен ему для чтения:
chown apigee:apigee $opt/apigee/customer/application/<file>.properties
-
Перезапустите компонент:
/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 остаются такими же, как обычно, но в них необходимо включить следующие параметры:
--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 |
Укажите путь к файлу bc-fips-XXXX.jar. В будущих выпусках OPDK эта версия может измениться. Используйте версию, поставляемую Apigee, или скачайте ее из репозиториев Bouncycastle. Для OPDK 4.53 путь должен быть /opt/apigee/edge-gateway/lib/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, ознакомьтесь с разделом Как преобразовать сертификаты в поддерживаемый формат.