FIPS 지원 RHEL 8.X의 프라이빗 클라우드용 Edge

이 도움말에는 FIPS 지원 RHEL 8.X에서 작동하는 버전 4.53.00 이상을 사용하는 프라이빗 클라우드용 Edge 고객을 위한 세부정보와 안내가 포함되어 있습니다.

사전 설치

프라이빗 클라우드용 Edge 문서에 나열된 다른 표준 구성 기본 요건 외에도 노드에서 FIPS가 사용 설정되어 있는지 확인합니다.

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

현재 FIPS 모드가 사용 중지된 경우 공식 Red Hat 문서에서 사용 설정 방법을 참고하세요.

자바 요구사항

Java의 보안 모듈이 FIPS를 인식하고 Java 보안을 통해 FIPS 관련 제한사항을 구현할 수 있도록 하려면 사용하는 Java를 Red Hat의 저장소에서 다운로드해야 합니다.

설치

조용히 설치 구성 파일 참조에서 모든 노드에 FIPS_OS=true를 설정합니다. 평소와 같이 Edge for Private Cloud의 일반 설치 단계를 따르세요.

비공개 키 형식

API 프록시 또는 가상 호스트에서 사용할 비공개 키를 Apigee 키 저장소에 업로드하는 데는 PKCS12/PFX 형식만 사용할 수 있습니다. 파일을 만드는 데 도움이 필요한 경우 지원되는 형식으로 인증서 변환을 참고하세요.

일반 TLS 작업

FIPS 지원 RHEL 8.X에서 프라이빗 클라우드용 Edge 4.53.00 이상을 사용하는 경우 Edge의 대부분의 TLS 관련 구성요소 구성은 PKCS12 또는 BCFKS 형식 키 저장소를 통해 실행해야 합니다. 자세한 내용은 TLS 구성에 관한 FIPS 관련 문서 또는 관련 도움말의 메모를 참고하세요. 부록에는 이러한 키 저장소를 생성하는 데 사용할 수 있는 몇 가지 유용한 명령어가 나와 있습니다.

기본 Java 키 저장소/신뢰 저장소

Edge Private Cloud 4.53.00 이상이 FIPS 지원 RHEL 8.X에서 실행되는 경우 메시지 프로세서, 관리 서버, 기타 edge-* 구성요소는 제품과 함께 제공된 기본 트러스트 저장소 및 키 저장소를 사용합니다. 여기에는 애플리케이션에서 기본적으로 신뢰할 CA 인증서가 포함되어 있습니다. CA 인증서가 포함된 자체 저장소로 변경하려면 다음 절차를 따르세요.

  1. 신뢰할 모든 CA 인증서가 포함된 BCFKS 형식 cacerts 파일을 만듭니다. 키 저장소 비밀번호와 키 비밀번호가 동일한지 확인합니다. 자세한 내용은 부록을 참고하세요.
  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-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. 파일에 다음 행을 추가합니다.
          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  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의 경로입니다. 이 jar의 버전은 향후 OPDK 버전에서 변경될 수 있습니다. Apigee에서 제공하는 버전을 사용해야 합니다. Bouncycastle 저장소에서 jar를 다운로드할 수도 있습니다. 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로 패키징하려면 인증서를 지원되는 형식으로 변환을 참고하세요.