はじめに
OCI 上で外部公開ウェブサイトを展開する際、検討項目の1つに証明書があるかと思います。
その際、OCI のサービスとして提供されている OCI Certificates の利用が考えられます。
そこで本記事では以下についてまとめていきます。
- OCI Certificate について
- 使用方法(デモ)
OCI Certificates について
証明書の発行、格納および管理機能(失効や自動更新など)を提供するマネージドサービス です。
もう少し具体的に示すと以下の通りです。
- プライベート認証局(CA)の作成
- 作成したプライベート認証局から、プライベート証明書(サーバー、クライアントどちらも可)を発行 / 自動更新 / 失効
- サードパーティーパブリック認証局 / サードパーティープライベート認証局で発行した証明書 のインポート
- インポートした証明書の自動更新 及び 失効 は不可
- 作成したプライベート認証局で作成した証明書 及び インポートした証明書は 対応する OCI サービスに関連付けが可能
つまり、現時点で OCI 上では パブリック証明書を発行できません。
AWS みたいに内部でパブリック認証局を保有していないことになります。
そのため、OCI Certificates で証明書を完結させる場合は、プライベート証明書のため、ルートCAをクライアント側に配布する必要があり、内部システムならネイティブ機能で完結できるということになります。(不特定多数が利用するシステムでは厳しいということになります。)
ちなみに、OCI Certificates は無償利用が可能 です。
ただし、プライベート認証局を作成する場合は、OCI Vault を利用する必要があり、保護モードが HSM のため、その料金が発生します
使用方法(デモ)
検証構成
検証構成図は以下の通りです。
なお、以下リソースは作成済みで進めていきます。
- VCN等のNWリソース
- OCI DNS パブリックゾーン (外部レジストラでドメインを購入し、パブリックゾーンに委任済み)
- 環境構築コードは以下 GitHub にあげてますので、よかったら覗いてみてください
実践
OCI Vault 作成
まず初めに、OCI Vault を作成します。
OCI Vault は、認証局の公開鍵/秘密鍵を保管するために利用 します。
OCI コンソール左上のハンバーガーマークをクリックし、Identity & Security → Vault をクリックします。

任意のコンパートメントを指定し、Create Vault をクリックします。

設定を入力し、Create Vault をクリックします。
今回は以下のようにしています。

| 項目 | 概要 | 設定値 |
|---|---|---|
| Name | ・Vault を識別する名前 | default-vault-for-certificates |
| Make it a virtual private vault | ・「Default Vault」ではなく「Virtual Private Vault」として作成するかどうか ※Default Vault:共有パーティション内で仮想的にユーザーのVaultを提供 ※Virtual Private Vault:ユーザー専用に完全分離された専用パーティションとして提供 |
disabled ※「Default Vault」として作成 |
- 仮に Virtual Private Vault として作成すると、最低でも「約¥75,264」の課金が発生するので十分に注意してください
認証局用キー作成
認証局用キーを作成します。
Master encryption keys を選択し、Create Key をクリックします。

設定を入力し、Create Vault をクリックします。
今回は以下のようにしています。

| 項目 | 概要 | 設定値 |
|---|---|---|
| Protection Mode | ・作成するキーの保護モード | HSM ※認証局用キーはHSMのみサポート |
| Name | ・キーを識別する名前 | certificates-hsm-key |
| Key Shape Algorithm | ・作成するキーの暗号化アルゴリズム | RSA ※認証局用キーは非対称キーのみサポート |
| Key Shape Length | ・暗号化アルゴリズムビット数 | 4096 bits |
| Import External Key | ・外部HSMで管理されているキーをインポートして使うかどうか | disabled |
動的グループ / ポリシー作成
OCI Certificates 用の動的グループ及びポリシーを作成します。
OCI コンソール左上のハンバーガーマークをクリックし、Identity & Security → Domains をクリックします。

ルートコンパートメント内の Default ドメインをクリックします。

Dynamic groups タブを選択し、Create dynamic group をクリックします。

設定を入力し、Create をクリックします。
今回は以下のようにしています。


| 項目 | 概要 | 設定値 |
|---|---|---|
| Name | ・動的グループを識別する名前 | Certificates_Dynamic_Group |
| Description | ・動的グループの説明 | Certificates Dynamic Group |
| Matching rules | ・動的グループに含めるルール | Match any rules defined below |
| resource.type = 'certificateauthority' |
続いてポリシーを作成します。
OCI コンソール左上のハンバーガーマークをクリックし、Identity & Security → Policies をクリックします。

OCI Certificates を所属させるコンパートメント、もしくは上位層のコンパートメントを選択し、Create Policy をクリックします。

設定を入力し、Create をクリックします。
今回は以下のようにしています。


| 項目 | 概要 | 設定値 |
|---|---|---|
| Name | ・ポリシーを識別する名前 | certificates-policy |
| Description | ・ポリシーの説明 | OCI Certificates Policy for Vault |
| Compartment | ・ポリシーを所属させるコンパートメント | oci-certificates-secure-external-public-website |
| Policy Builder | ・ポリシーステートメント | allow dynamic-group Default/Certificates_Dynamic_Group to use keys in compartment oci-certificates-secure-external-public-website |
OCI Certificates (プライベート認証局) 作成
- OCI Certificates が OCI Vault への権限が不足していると、認証局作成に失敗します
- 加えて、設定上 CRL の出力を有効化する場合は、OCI Object Storage への権限が不足していると、認証局作成に失敗します
プライベート認証局を作成します。
OCI コンソール左上のハンバーガーマークをクリックし、Identity & Security → Certificate Authorities をクリックします。

任意のコンパートメントを選択し、Create Certificate Authority をクリックします。

設定を入力し、Create Certificate Authority をクリックします。
今回は以下のようにしています。





| 項目 | 概要 | 設定値 |
|---|---|---|
| Basic Information | ||
| Certificate Authority Type | ・作成する認証局のタイプ | Root Certificate Authority |
| Name | ・作成する認証局を識別する名前 | private-root-ca |
| Description | ・作成する認証局の説明 | Private Root CA |
| Subject Information | ||
| Common Name | ・CNに該当 ・証明書の発行者を識別 |
SSL External Public Website |
| Additional Fields | ・追加項目(オプション) ・DV、OV等の証明したい内容に合わせて追加 |
Country: Japan Sate or Province: Tokyo |
| Authority Configuration | ||
| Not Valid Before | ・作成する認証局の有効期限開始日 | 空白 ※即時開始 |
| Not Valid After | ・作成する認証局の有効期限終了日 ※有効期限開始日+1日~2037年12月31日の範囲で指定可能 |
Jan 14, 2036 00:00 UTC |
| Vault | ・使用するキーが格納されているOCI Vault | default-vault-for-certificates |
| Key | ・使用するキー | certificates-hsm-key |
| Signing Algorithm | ・署名アルゴリズム | SHA384_WITH_RSA |
| Rules ※無でも可能 |
||
| Maximum Validity Duration for Certificates (Days) | ・認証局から発行する証明書の最大有効期限 | 空白 |
| Maximum Validity Duration for Subordinate CA (Days) | ・下位認証局の最大有効期限 | 空白 |
| Revocation Configuration | ||
| Skip Revocation | ・CRLの発行を無効化するかどうか | Enabled |
| Object Storage Bucket | ・CRLを格納する空のObject Storage Bucket | - |
| Object Name Format | ・CRLファイル名のカスタム | - |
| Custom Formatted URLs | ・CRLファイルの取得URLのカスタム | - |
サーバー証明書発行
サーバー証明書を発行します。
Certificates → Issue Certificate をクリックします。

設定を入力し、Create Certificate をクリックします。
今回は以下のようにしています。




| 項目 | 概要 | 設定値 |
|---|---|---|
| Basic Information | ||
| Certificate Type | ・発行する証明書のタイプ | Issued by internal CA |
| Name | ・証明書を識別する名前 | flb-server-certificates |
| Description | ・証明書の説明 | For FLB Server Certificates |
| Subject Information | ||
| Common Name | ・証明書で証明する対象の名称 ・FQDNやドメイン名 |
|
| Subject Alternative Names | ・サブジェクト代替名 | |
| Aditional Fields | ・追加項目(オプション) ・DV、OV等の証明したい内容に合わせて追加 |
Country: Japan Sate or Province: Tokyo |
| Certificate Configuration | ||
| Certificate Profile Type | ・発行する証明書のタイプ | TLS Server |
| Not Valid Before | ・作成する証明書の有効期限開始日 | 空白 ※即時開始 |
| Not Valid After | ・作成する証明書の有効期限終了日 ※有効期限開始日+1日~2037年12月31日の範囲で指定可能 |
Apr 16, 2026 00:00:00 UTC |
| Key Algorithm | ・証明書キー作成アルゴリズム | RSA2048 |
| Signature Algorithm | ・署名アルゴリズム | SHA256_WITH_RSA |
| Rules ※無でも可能 |
||
| Renewal Interval (Days) | ・証明書を更新すべき間隔(日数)を指定 | 90 |
| Advance Renewal Period (Days) | ・証明書が対象とする更新の何日前にプロセスが発生すべきかを指定 | 30 |
OCI Load Balancer (Flexible Load Balancer) 作成
OCI FLB を作成します。
OCI コンソール左上のハンバーガーマークをクリックし、Networking → Load balancer をクリックします。

任意のコンパートメントを選択し、Create load balancer をクリックします。

設定を入力し、Create をクリックします。
今回は以下のようにしています。
- ポイントとなるリスナーのみ記載します
クライアントPCにプライベート認証局のルート証明書インポート
クライアントPCにプライベート認証局のルート証明書をインポートします。
Versions → ⋮ → View Content をクリックします。

本検証では最上位の認証局であり、かつ1つしか認証局はないので、上半分の Download をクリックして、ルート証明書をダウンロードします。

私は MacOSを使ってますので、ダウンロードした証明書をダブルクリックし、ログインユーザーのキーチェーンにインポートします。

キーチェーンアクセスを開き、先程インポートした証明書をダブルクリックします。

信頼 タブ内の この証明書を使用するとき を 常に信頼 に変更して閉じます。
閉じるとユーザーPWを効かれるため、ログインユーザーのパスワードを入力し更新します。

動作確認
では実際にブラウザからアクセスしてみます。
証明書エラーなくアクセスできたことが確認できました。

おわりに
本記事では、OCI Certificates についてと、使用方法についてまとめました。
OCI サービスを使って外部公開サイトを展開する際は必ず利用を検討することになると思いますので、その際は本記事を参考にしていただければと思います。
🌟この記事が誰かの役に立てば幸いです!
また、ご質問やフィードバックもお待ちしています。










