APEX_WEB_SERVICE.MAKE_REST_REQUESTを使用してREST APIを呼び出すには、ルート認証局(CA)の証明書を含むウォレットの指定が必要です。通常はOracle APEXのインスタンスにウォレットを設定することにより、APIでの指定を省略できるようにします。
Oracle APEXの管理サービスにサインインし、インスタンスの管理のインスタンスの設定を開きます。
インスタンスの設定にウォレットのセクションがあります。
ウォレット・パスにルート認証局の証明書がロードされたウォレットのファイルが含まれるディレクトリ指定します。今回は/home/oracle/wallet以下にウォレットのファイルを配置します。
ウォレット・パスの指定は以下になります。
file:///home/oracle/wallet
ウォレットに含まれる証明書はルート認証局のものだけなので、すべて公開されている情報です。そのため、ウォレットをパスワードで保護する必要はありません。
ウォレットは自動ログイン・ウォレットとして作成するので、この項目にチェックを入れます。
以上でOracle APEX側の設定は完了です。
以下にウォレットの作成方法を説明します。
2023年11月15日追記
Oracle APEX 23.2より管理サービスのインスタンスの設定に含まれる電子メールのOracle APEXインスタンスのURLとOracle APEXのイメージURLの設定が必須項目になり、かつ、デフォルトで空白になっています(デフォルトURLをクリックすると、Oracle APEXの実行環境に合わせてURLが挿入されます)。
ウォレットの作成手順
RHEL8/9系のLinuxにパッケージca-certificatesがインストールされていると、信頼できるCA証明書が/etc/pki/tls/cert.pemとして配置されています。このファイルを元にOracleのウォレットを作成します。
[oracle@apex ~]$ cd $HOME
[oracle@apex ~]$ . oraenv
ORACLE_SID = [oracle] ? FREE
The Oracle base has been set to /opt/oracle
[oracle@apex ~]$
sh split_cert.sh
[oracle@apex ~]$ sh split_cert.sh
[oracle@apex ~]$ ls certs
cert100.cer cert125.cer cert14.cer cert29.cer cert53.cer cert78.cer
cert101.cer cert126.cer cert150.cer cert2.cer cert54.cer cert79.cer
cert102.cer cert127.cer cert151.cer cert30.cer cert55.cer cert7.cer
cert103.cer cert128.cer cert152.cer cert31.cer cert56.cer cert80.cer
cert104.cer cert129.cer cert153.cer cert32.cer cert57.cer cert81.cer
cert105.cer cert12.cer cert154.cer cert33.cer cert58.cer cert82.cer
cert106.cer cert130.cer cert155.cer cert34.cer cert59.cer cert83.cer
cert107.cer cert131.cer cert156.cer cert35.cer cert5.cer cert84.cer
cert108.cer cert132.cer cert157.cer cert36.cer cert60.cer cert85.cer
cert109.cer cert133.cer cert158.cer cert37.cer cert61.cer cert86.cer
cert10.cer cert134.cer cert159.cer cert38.cer cert62.cer cert87.cer
cert110.cer cert135.cer cert15.cer cert39.cer cert63.cer cert88.cer
cert111.cer cert136.cer cert160.cer cert3.cer cert64.cer cert89.cer
cert112.cer cert137.cer cert16.cer cert40.cer cert65.cer cert8.cer
cert113.cer cert138.cer cert17.cer cert41.cer cert66.cer cert90.cer
cert114.cer cert139.cer cert18.cer cert42.cer cert67.cer cert91.cer
cert115.cer cert13.cer cert19.cer cert43.cer cert68.cer cert92.cer
cert116.cer cert140.cer cert1.cer cert44.cer cert69.cer cert93.cer
cert117.cer cert141.cer cert20.cer cert45.cer cert6.cer cert94.cer
cert118.cer cert142.cer cert21.cer cert46.cer cert70.cer cert95.cer
cert119.cer cert143.cer cert22.cer cert47.cer cert71.cer cert96.cer
cert11.cer cert144.cer cert23.cer cert48.cer cert72.cer cert97.cer
cert120.cer cert145.cer cert24.cer cert49.cer cert73.cer cert98.cer
cert121.cer cert146.cer cert25.cer cert4.cer cert74.cer cert99.cer
cert122.cer cert147.cer cert26.cer cert50.cer cert75.cer cert9.cer
cert123.cer cert148.cer cert27.cer cert51.cer cert76.cer
cert124.cer cert149.cer cert28.cer cert52.cer cert77.cer
[oracle@apex ~]$
作成された証明書を一気に登録します。以下のスクリプトを使用します。
[oracle@apex0413 ~]$ sh create_wallet.sh
Oracle PKI Tool Release 23.2.0.0.0 - Production
Version 23.2.0.0.0
Copyright (c) 2004, 2023, Oracle and/or its affiliates. All rights reserved.
Operation is successfully completed.
Oracle PKI Tool Release 23.2.0.0.0 - Production
Version 23.2.0.0.0
Copyright (c) 2004, 2023, Oracle and/or its affiliates. All rights reserved.
Operation is successfully completed.
Oracle PKI Tool Release 23.2.0.0.0 - Production
Version 23.2.0.0.0
Copyright (c) 2004, 2023, Oracle and/or its affiliates. All rights reserved.
Operation is successfully completed.
Oracle PKI Tool Release 23.2.0.0.0 - Production
Version 23.2.0.0.0
[中略]
Operation is successfully completed.
Oracle PKI Tool Release 23.2.0.0.0 - Production
Version 23.2.0.0.0
Copyright (c) 2004, 2023, Oracle and/or its affiliates. All rights reserved.
Operation is successfully completed.
[oracle@apex0413 ~]$
追加に成功したCA証明書は削除されます。ディレクトリcerts以下に残ったファイルは、追加に失敗したCA証明書です。
[oracle@apex0413 ~]$ sh create_wallet.sh
Oracle PKI Tool Release 23.0.0.0.0 - Production
Version 23.0.0.0.0
Copyright (c) 2004, 2024, Oracle and/or its affiliates. All rights reserved.
Could not install trusted cert atcerts/cert52.cer
PKI-04003: The trusted certificate is already present in the wallet.
[oracle@apex0413 ~]$