設定 Oracle Access Management 12c 的 SSL

簡介

本教學課程示範如何設定 Oracle Access Management 12c 網域的 SSL。

這是 Oracle Access Management 12c 入門系列中的第六個教學課程。依序讀取。

目標

設定 Oracle Access Management 12c 網域的 SSL。

必要條件

建立金鑰存放區和憑證

建立 Java 金鑰存放區

  1. oracle 形式啟動終端機視窗,並執行下列命令以建立 java 金鑰存放區:

    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. 執行下列命令,檢視金鑰存放區的內容:

    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                                        ]..]
    ]
    ]
    
     *******************************************
     *******************************************
    

設定 OAM 以進行 SSL

您可以在此區段中設定 OAM AdminServer,使用先前產生的金鑰存放區使用 SSL。

  1. 啟動瀏覽器並存取位於 http://oam.example.com:7001/console 的 WebLogic 伺服器主控台。以 weblogic/<password> 身分登入。

  2. 在「變更中心」,按一下鎖定和編輯

  3. 在「網域結構」窗格中,oam_domain 下瀏覽至環境 > 伺服器。按一下 AdminServer

  4. 一般頁籤中,按一下啟用 SSL 監聽連接埠核取方塊。按一下儲存

    sslenabled.jpg 圖解說明

  5. 按一下 Keystores 標籤。在金鑰存放區頁籤中,按一下「金鑰存放區」下的變更

    keysystores.jpg 圖解說明

  6. 在「金鑰存放區」下拉式清單中,選取自訂識別和自訂信任。按一下儲存

  7. 依照下列方式填寫「金鑰存放區」欄位,然後按一下儲存

    欄位
    自訂識別金鑰存放區 /u01/app/oracle/admin/domains/oam_domain/keystore/oam_keystore.jks
    自訂識別金鑰存放區類型 JKS
    自訂識別金鑰存放區密碼 <password>
    確認自訂識別金鑰儲存庫密碼 <password>
    自訂信任金鑰存放區 /u01/app/oracle/admin/domains/oam_domain/keystore/oam_keystore.jks
    自訂信任金鑰存放區類型 JKS
    自訂信任金鑰存放區密碼詞組 <password>
    確認自訂信任金鑰儲存庫密碼 <password>

    例如:

    ystorevalues.jpg 圖解的描述

  8. 按一下 SSL 頁籤。依照下列方式填寫欄位,然後按一下儲存

    欄位
    私密金鑰別名 server_cert
    私密金鑰密碼詞組 <password>
    確認私密金鑰密碼 <password>

    例如:

    ssltab.jpg 圖解說明

  9. 展開進階區段,然後在主機名稱驗證底下選取。按一下儲存

  10. 變更中心中,按一下啟動變更

  11. 測試您可以透過 SSL 存取「WLS 主控台」,例如 https://oam.example.com:7002/console。以 weblogic/<password> 身分登入。

  12. 在「變更中心」,按一下鎖定和編輯

  13. 在「網域結構」窗格中,oam_domain 下瀏覽至環境 > 伺服器。按一下 oam_server1

  14. 針對 oam_server1 重複上述步驟 4-10。

  15. 在「變更中心」,按一下鎖定和編輯

  16. 在「網域結構」窗格中,oam_domain 下瀏覽至環境 > 伺服器。按一下 oam_policy_mgr1

  17. 針對 oam_policy_mgr1 重複上述步驟 4-10。

  18. 測試您可以透過 SSL 存取 Policy Manager 主控台,例如 https://oam.example.com:14151/access。以 weblogic/<password> 身分登入。

將負載平衡設定值變更為 SSL

  1. 啟動瀏覽器並存取位於 https://oam.example.com:7002/oamconsole 的 WebLogic 伺服器主控台。以 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。

致謝