Oracle Access Management 12c에 대한 SSL 구성

소개

이 사용지침서에서는 Oracle Access Management 12c 도메인에 대해 SSL을 구성하는 방법을 보여줍니다.

Oracle Access Management 12c 시작하기 시리즈의 여섯 번째 자습서입니다. 순차적으로 읽어보십시오.

목표

Oracle Access Management 12c 도메인에 대해 SSL을 구성합니다.

필요 조건

키 저장소 및 인증서 생성

Java 키 저장소 생성

  1. 터미널 window를 oracle로 실행하고 다음 명령을 실행하여 java keystore를 생성합니다.

    mkdir /u01/app/oracle/admin/domains/oam_domain/keystore
    cd /u01/app/oracle/admin/domains/oam_domain/keystore
    keytool -genkey -alias <alias> -keyalg RSA -keysize 2048 -sigalg SHA256withRSA -dname <dn> -keypass <password> -keystore <keystore> -storepass <password>
    

    예:

    mkdir /u01/app/oracle/admin/domains/oam_domain/keystore
    cd /u01/app/oracle/admin/domains/oam_domain/keystore
    keytool -genkey -alias server_cert -keyalg RSA -keysize 2048 -sigalg SHA256withRSA -validity 36500 \
    -dname "CN=oam.example.com,OU=Security,O=Example Company,L=Redwood Shores,ST=California,C=US" \
    -keypass <password> -keystore oam_keystore.jks -storepass <password>
    

    <password>를 선택한 비밀번호로 바꿉니다.

    : CN=OAM.example.com는 OAM이 설치된 서버의 host.domain으로 설정해야 합니다.

    -alias, -keystore, -keypass-storepass의 값은 이 자습서 뒷부분에서 사용되므로 기록해 두십시오.

인증서 서명 요청 생성

  1. 다음 명령을 사용하여 CSR(인증서 서명 요청)을 만듭니다.

    keytool -certreq -v -alias <alias> -file <filename> -sigalg SHA256withRSA -keypass <password> -storepass <password> -keystore <keystore>
    

    예:

    keytool -certreq -v -alias server_cert -file server.csr -sigalg SHA256withRSA -keypass <password> -storepass <password> -keystore oam_keystore.jks
    

    1단계와 동일한 -alias, -keypassstorepass를 사용해야 합니다.

    : 이 단계 또는 이후 단계에 Warning: The JKS keystore uses a proprietary format가 표시되면 이 오류를 무시할 수 있습니다.

    출력은 다음과 비슷합니다.

    Certification request stored in file <server.csr>
    Submit this to your CA
    

    CSR은 다음과 비슷하게 나타나야 합니다.

    $ cat server.csr
    -----BEGIN NEW CERTIFICATE REQUEST-----
    MIIC+DCCAeACAQAwgYIxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
    MRcwFQYDVQQHEw5SZWR3b29kIFNob3JlczEYMBYGA1UEChMPRXhhbXBsZSBDb21w
    etc...
    rhEZEIfvX7jTu6b9Vxy2/RR2sYpQpOlKVMWqBdA1E8UdWaFDXtTOAC+d1FcUrZPw
    XybKIozSa3lCW+pJ/HCNN30qWiA3Pb76Vi+hlicgXPcUZeYcN2xNM5VXLzY=
    -----END NEW CERTIFICATE REQUEST-----
    
  2. 인증서를 생성하려면 CSR을 선택한 CA(인증 기관)로 전송해야 합니다. CA는 서버 인증서와 인증서에 서명된 루트 CA 인증서를 다시 전송해야 합니다. 이 자습서에서 반환된 인증서는 서버 인증서 및 CA 인증에 대해 각각 server.crtca.crt로 저장됩니다.

    : CA가 없는 경우 테스트를 위해 직접 생성할 수 있습니다. 이 작업을 수행하는 방법은 다음 절에 나와 있습니다.

  3. 인증서가 수신되면 /u01/app/oracle/admin/domains/oam_domain/keystore 디렉토리에 복사합니다.

인증 기관 생성 및 서버 인증서 생성

: 이 섹션은 CA(인증 기관)가 없고 테스트용으로 고유의 CA를 생성해야 하는 경우에만 따라야 합니다.

  1. CA 파일을 만들 작업 디렉토리를 만듭니다(예: /stage/ssl).

    mkdir /stage/ssl
        cd /stage/ssl
    
  2. 루트 CA(인증 기관)에 대한 4096비트 전용 키(ca.key)를 생성합니다.

    openssl genrsa -out ca.key 4096
    

    출력은 다음과 비슷합니다.

    Generating RSA private key, 4096 bit long modulus
    ................................................................................................................................................++
    .....................++
    e is 65537 (0x10001)
    
  3. 자체 서명된 루트 CA 인증서(ca.crt)를 만듭니다.

    openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
    

    메시지가 표시되면 CA를 만들 세부 정보를 입력합니다. 예:

    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [XX]:US
    State or Province Name (full name) []:California
    Locality Name (eg, city) [Default City]:Redwood City
    Organization Name (eg, company) [Default Company Ltd]:Example Company
    Organizational Unit Name (eg, section) []:Security
    Common Name (eg, your name or your server's hostname) []: Example Company Certificate Authority
    Email Address []:
    

    화면에 출력이 반환되지 않습니다.

  4. CA를 사용하여 이전 섹션에서 만든 CSR에서 인증서를 생성합니다.

    openssl x509 -req -days 36500 -in /u01/app/oracle/admin/domains/oam_domain/keystore/server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt
    

    출력은 다음과 비슷합니다.

    Signature ok
    subject=/C=US/ST=California/L=Redwood Shores/O=Example Company/OU=Security/CN=oam.example.com
    Getting CA Private Key
    
  5. server.crtca.crt/u01/app/oracle/admin/domains/oam_domain/keystore/ 디렉토리에 복사합니다.

    cp server.crt ca.crt /u01/app/oracle/admin/domains/oam_domain/keystore/
    

인증서를 키 저장소로 임포트합니다.

  1. 다음 명령을 실행하여 인증서를 키 저장소로 가져옵니다.

    cd /u01/app/oracle/admin/domains/oam_domain/keystore/
    keytool -import -v -noprompt -trustcacerts -alias <alias> -file <rootca_file> -keystore <keystore> -storepass <password>
    

    예:

    keytool -import -v -noprompt -trustcacerts -alias rootcacert -file ca.crt -keystore oam_keystore.jks -storepass <password>
    

    출력은 다음과 같이 표시됩니다.

    Certificate was added to keystore
    [Storing oam_keystore.jks]
    

    : CA에 체인에 둘 이상의 CA 인증서가 있는 경우 매번 다른 별칭을 사용하여 각 인증서에 대해 위와 같이 반복해야 합니다. 예:

    keytool -import -v -noprompt -trustcacerts -alias rootcacert2 -file ca2.cer -keystore oam_keystore.jks -storepass <password>
    
  2. 다음 명령을 실행하여 서버 인증서를 키 저장소로 가져옵니다.

    keytool -import -v -alias <alias> -file <server_cert_file> -keystore <keystore> -keypass <password> -storepass <password>
    

    예:

    keytool -import -v -alias server_cert -file server.crt -keystore oam_keystore.jks -keypass <password> -storepass <password>
    

    출력은 다음과 같이 표시됩니다.

    Certificate reply was installed in keystore
    [Storing oam_keystore.jks]
    
  3. 다음 명령을 실행하여 keystore의 내용을 확인합니다.

    keytool -list -v -keystore oam_keystore.jks -storepass <PASSWORD>
    

    출력은 다음과 같이 표시됩니다.

    Keystore type: JKS
    Keystore provider: SUN
    
    Your keystore contains 2 entries
    
    Alias name: rootcacert
    Creation date: Jun 1, 2022
    Entry type: trustedCertEntry
    
    Owner: CN=Example Company Certificate Authority, OU=Security, O=Example Company, L=Redwood City, ST=California, C=US
    Issuer: CN=Example Company Certificate Authority, OU=Security, O=Example Company, L=Redwood City, ST=California, C=US
    Serial number: c3ed8cc19663b1c5
    Valid from: Wed Jun 01 09:44:06 GMT 2022 until: Sat May 29 09:44:06 GMT 2032
    Certificate fingerprints:
    	    SHA1: 5F:F8:C0:B9:CE:1C:75:85:04:C0:23:D0:63:5E:CC:3B:B4:1F:13:B6
    	    SHA256: BA:8B:9E:E2:16:BD:59:EF:BC:77:4D:10:F7:9C:D3:7B:A6:77:B7:CF:8F:E3:DB:14:44:1E:75:5E:BD:A8:A0:28
    Signature algorithm name: SHA256withRSA
    Subject Public Key Algorithm: 4096-bit RSA key
    Version: 3
    
    Extensions: 
    
    #1: ObjectId: 2.5.29.35 Criticality=false
    AuthorityKeyIdentifier [
    KeyIdentifier [
    0000: FD D2 44 11 5F BE 18 12   59 A0 2B 89 37 68 E2 2D  ..D._...Y.+.7h.-
    0010: 5D 00 D3 5D                                        ]..]
    ]
    ]
    
    #2: ObjectId: 2.5.29.19 Criticality=false
    BasicConstraints:[
      CA:true
      PathLen:2147483647
    ]
    
    #3: ObjectId: 2.5.29.14 Criticality=false
    SubjectKeyIdentifier [
    KeyIdentifier [
    0000: FD D2 44 11 5F BE 18 12   59 A0 2B 89 37 68 E2 2D  ..D._...Y.+.7h.-
    0010: 5D 00 D3 5D                                        ]..]
    ]
    ]
    
     *******************************************
     *******************************************
    
    Alias name: server_cert
    Creation date: Jun 1, 2022
    Entry type: PrivateKeyEntry
    Certificate chain length: 2
    Certificate[1]:
    Owner: CN=oam.example.com, OU=Security, O=Example Company, L=Redwood Shores, ST=California, C=US
    Issuer: CN=Example Company Certificate Authority, OU=Security, O=Example Company, L=Redwood City, ST=California, C=US
    Serial number: 1
    Valid from: Wed Jun 01 10:28:02 GMT 2022 until: Fri May 08 10:28:02 GMT 2122
    Certificate fingerprints:
    	    SHA1: C3:5B:FC:E1:38:60:9A:62:D1:C8:07:CC:36:6F:60:8E:BF:A8:B9:25
    	    SHA256: 4A:29:8F:85:D0:5E:9A:49:94:AE:10:F6:77:36:36:BC:4E:75:45:ED:F6:4F:B3:5E:E0:FE:FC:83:1D:DB:BC:9E
    Signature algorithm name: SHA256withRSA
    Subject Public Key Algorithm: 2048-bit RSA key
    Version: 1
    Certificate[2]:
    Owner: CN=Example Company Certificate Authority, OU=Security, O=Example Company, L=Redwood City, ST=California, C=US
    Issuer: CN=Example Company Certificate Authority, OU=Security, O=Example Company, L=Redwood City, ST=California, C=US
    Serial number: c3ed8cc19663b1c5
    Valid from: Wed Jun 01 09:44:06 GMT 2022 until: Sat May 29 09:44:06 GMT 2032
    Certificate fingerprints:
    	    SHA1: 5F:F8:C0:B9:CE:1C:75:85:04:C0:23:D0:63:5E:CC:3B:B4:1F:13:B6
    	    SHA256: BA:8B:9E:E2:16:BD:59:EF:BC:77:4D:10:F7:9C:D3:7B:A6:77:B7:CF:8F:E3:DB:14:44:1E:75:5E:BD:A8:A0:28
    Signature algorithm name: SHA256withRSA
    Subject Public Key Algorithm: 4096-bit RSA key
    Version: 3
    
    Extensions: 
    
    #1: ObjectId: 2.5.29.35 Criticality=false
    AuthorityKeyIdentifier [
    KeyIdentifier [
    0000: FD D2 44 11 5F BE 18 12   59 A0 2B 89 37 68 E2 2D  ..D._...Y.+.7h.-
    0010: 5D 00 D3 5D                                        ]..]
    ]
    ]
    
    #2: ObjectId: 2.5.29.19 Criticality=false
    BasicConstraints:[
      CA:true
      PathLen:2147483647
    ]
    
    #3: ObjectId: 2.5.29.14 Criticality=false
    SubjectKeyIdentifier [
    KeyIdentifier [
    0000: FD D2 44 11 5F BE 18 12   59 A0 2B 89 37 68 E2 2D  ..D._...Y.+.7h.-
    0010: 5D 00 D3 5D                                        ]..]
    ]
    ]
    
     *******************************************
     *******************************************
    

SSL용 OAM 구성

이 섹션에서는 이전에 생성된 키 저장소를 사용하여 SSL을 사용하도록 OAM AdminServer을 구성합니다.

  1. 브라우저를 시작하고 http://oam.example.com:7001/console에서 WebLogic Server Console에 액세스합니다. weblogic/<password>로 로그인합니다.

  2. 변경 센터에서 잠금 및 편집을 누릅니다.

  3. Domain Structure 창의 oam_domain에서 Environment > Servers로 이동합니다. AdminServer을 누릅니다.

  4. 일반 사항 탭에서 SSL 수신 포트 사용 체크 박스를 누릅니다. 저장을 누릅니다.

    sslenabled.jpg 그림에 대한 설명

  5. 키 저장소 탭을 누릅니다. 키 저장소 탭의 키 저장소 아래에서 변경을 누릅니다.

    그림 keystores.jpg에 대한 설명

  6. Keystores 드롭다운 목록에서 Custom Identity and Custom Trust를 선택합니다. Save를 누릅니다.

  7. 다음과 같이 Keystore 필드를 채우고 Save를 누릅니다.

    필드
    사용자정의 ID 키 저장소 /u01/app/oracle/admin/domains/oam_domain/keystore/oam_keystore.jks
    사용자정의 ID 키 저장소 유형 JKS
    사용자정의 ID 키 저장소 비밀번호 구문 <password>
    사용자정의 ID 키 저장소 비밀번호 구문 확인 <password>
    사용자정의 보안 키 저장소 /u01/app/oracle/admin/domains/oam_domain/keystore/oam_keystore.jks
    사용자정의 보안 키 저장소 유형 JKS
    사용자정의 보안 키 저장소 비밀번호 구문 <password>
    사용자정의 보안 키 저장소 비밀번호 구문 확인 <password>

    예:

    그림 keystorevalues.jpg에 대한 설명

  8. SSL 탭을 누릅니다. 다음과 같이 필드를 입력하고 저장을 누릅니다.

    필드
    전용 키 별칭 server_cert
    전용 키 문장암호 <password>
    개인 키 비밀번호 구문 확인 <password>

    예:

    ssltab.jpg 그림에 대한 설명

  9. 고급 섹션을 확장하고 호스트 이름 확인 아래의 드롭다운 목록에서 없음을 선택합니다. Save를 누릅니다.

  10. Change Center에서 Activate Changes를 누릅니다.

  11. SSL(예: https://oam.example.com:7002/console)을 통해 WLS 콘솔에 액세스할 수 있는지 테스트합니다. weblogic/<password>로 로그인합니다.

  12. 변경 센터에서 잠금 및 편집을 누릅니다.

  13. Domain Structure 창의 oam_domain에서 Environment > Servers로 이동합니다. oam_server1을 누릅니다.

  14. oam_server1에 대해 위의 4-10단계를 반복합니다.

  15. 변경 센터에서 잠금 및 편집을 누릅니다.

  16. Domain Structure 창의 oam_domain에서 Environment > Servers로 이동합니다. oam_policy_mgr1을 누릅니다.

  17. oam_policy_mgr1에 대해 위의 4-10단계를 반복합니다.

  18. SSL(예: https://oam.example.com:14151/access)을 통해 Policy Manager 콘솔에 액세스할 수 있는지 테스트합니다. weblogic/<password>로 로그인합니다.

SSL로 로드 밸런싱 설정 변경

  1. 브라우저를 시작하고 https://oam.example.com:7002/oamconsole에서 WebLogic Server Console에 액세스합니다. weblogic/<password>로 로그인합니다.

  2. 구성으로 이동한 다음 설정 타일에서 보기 > 액세스 관리자를 선택합니다.

  3. 로드 밸런싱WebGate 트래픽 로드 밸런서에서 다음을 설정하고 적용을 누릅니다.

    • OAM 서버 프로토콜: https
    • OAM 서버 포트: 14101

    예:

    lbssl.jpg 그림에 대한 설명

  4. oam_server1 서버를 재시작합니다.

    cd /u01/app/oracle/admin/domains/oam_domain/bin
    ./stopManagedWebLogic.sh oam_server1
    ./startManagedWebLogic.sh oam_server1
    

다음 튜토리얼

Oracle Access Management 12c용 Oracle Unified Directory 구성.

피드백

이 자습서에 대한 피드백을 제공하려면 idm_user_assistance_ww_grp@oracle.com으로 문의하십시오.

감사의 글