RDS와 Weblogic/DMS 엔드포인트 간 SSL 구성

RDS와 Weblogic/DMS 엔드포인트 간 SSL 구성

2022-10-04 last update

5 minutes reading dms aws encryption ssl
배경

앱과 RDS DB 간의 연결을 위해 종단 간 암호화를 활성화해야 합니다.

Oracle RDS 측에서

Oracle 인스턴스 생성 시 아래와 같이 Option 그룹 SSL 설정을 구성합니다.



웹로직 측에서
  • 연결 풀이 생성된 후 아래 URL 필드를 업데이트합니다. 예를 들어,

  • jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=<weblogic-host>)(PORT=2484))(CONNECT_DATA=(SERVICE_NAME=DEMOWLST)))
    


  • 연결 속성에서 다음을 추가합니다.

  • user=wlsdbuser
    databaseName=DEMOWLST
    javax.net.ssl.trustStore=/prod/applc/wls/domain/base_domain/certs/trust.jks
    javax.net.ssl.trustStoreType=JKS
    javax.net.ssl.trustStorePassword=<password, default to Admin password>
    




    신뢰할 수 있는 JKS/지갑 만들기
  • RDS 인증서를 추출하려면

  • openssl s_client -showcerts -connect "{{ datasource.rdsHostName }}:{{ datasource.rdsSSLPort }}" </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/rds.pem
    
    csplit -z -f tmpRDScert- /tmp/rds.pem '/-----BEGIN CERTIFICATE-----/' '{*}'
    
    cp `ls -1 tmpRDScert-* | tail -1` /tmp/rdsRoot.pem
    


  • 루트 인증서를 JKS 키 저장소로 가져오려면,

  • keytool -import -alias rds-rootcert -file /tmp/rdsRoot.pem -keystore /prod/applc/wls/domain/base_domain/certs/trust.jks -storepass {{ domain_password }} -noprompt
    


  • 루트 인증서를 Oracle Wallet으로 가져오려면(DMS 엔드포인트에 필요),

  • /prod/applc/wls/oracle_common/bin/orapki wallet create -wallet /tmp/ssl_wallet -auto_login_only
    /prod/applc/wls/oracle_common/bin/orapki wallet add -wallet /tmp/ssl_wallet -trusted_cert -cert /tmp/rdsRoot.pem -auto_login_only
    


    Oracle DMS 끝점의 경우 "verify-ca"옵션을 사용하여 SSL을 활성화할 때 rds-oracle-wallet을 선택하고 포트가 SSL 활성화된 포트를 가리켜야 합니다.