이 섹션에서는 Private Cloud용 Edge 버전 4.53.00 이상을 위한 안전하고 규정을 준수하는 환경을 보장하기 위해 RHEL 8에서 FIPS 모드를 사용 설정하는 방법을 안내합니다.
사전 설치
Edge 설치 개요 문서에 나열된 다른 표준 구성 기본 요건과 함께 노드에서 FIPS가 사용 설정되어 있는지 확인합니다.
fips-mode-setup --check FIPS mode is enabled. # Command output
현재 FIPS 모드가 사용 중지된 경우 사용 설정하는 방법에 관한 안내는 공식 Red Hat 문서 RHEL 8을 FIPS 모드로 전환을 참고하세요.
자바 요구사항
사용하는 Java는 Red Hat의 저장소에서 다운로드해야 보안 모듈이 FIPS를 준수하여 Java 보안을 통해 FIPS 관련 제한사항을 사용 설정할 수 있습니다.
설치
Edge 구성 파일 참조에서 각 노드에 FIPS_OS=true
를 설정합니다. 평소와 같이 Edge for Private Cloud의 일반 설치 단계를 따르세요.
비공개 키 형식
API 프록시 또는 가상 호스트에서 사용할 비공개 키를 Apigee 키 저장소에 업로드하는 데는 PKCS12/PFX 형식만 사용할 수 있습니다. 파일 만들기에 관한 안내는 지원되는 형식으로 인증서 변환을 참고하세요.
일반 TLS 작업
FIPS 지원 RHEL 8.X에서 Edge for Private Cloud 4.53.00 이상을 사용하는 경우 Edge의 대부분의 TLS 관련 구성요소 구성은 PKCS12 또는 BCFKS 형식 키 저장소를 통해 실행해야 합니다.
TLS 구성에 관한 자세한 내용은 FIPS 관련 문서 또는 관련 도움말의 메모를 참고하세요. 부록에는 이러한 키 저장소를 생성하는 데 사용할 수 있는 유용한 명령어가 나와 있습니다.
기본 Java 키 저장소/신뢰 저장소
FIPS 지원 RHEL 8.X에서 Edge for Private Cloud 4.53.00 이상을 사용하는 경우 메시지 프로세서, 관리 서버, 기타 edge-* 구성요소는 제품과 함께 제공된 기본 트러스트 저장소 및 키 저장소를 사용합니다.
여기에는 애플리케이션이 기본적으로 신뢰하는 CA 인증서가 포함되어 있습니다. CA 인증서가 포함된 자체 저장소를 사용하려면 다음 절차를 따르세요.
-
신뢰할 모든 CA 인증서가 포함된 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 명령어는 일반적으로 사용되는 명령어와 동일하지만 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 형식으로 변환해야 하는 경우 인증서를 지원되는 형식으로 변환을 참고하세요.