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