LoginSignup
2
0

OCI証明書サービスの使用体験

Last updated at Posted at 2022-02-11

本ブログは、オラクル・クラウドの個人シリーズ・ブログの1つです。

初めに

OCI証明書は、2021年10月27日にリリースされた新しいOCIマネージド・サービスです。以前、OCIロード・バランサーから証明書を利用したい時、OCI自分の証明書ではなく、外部の証明書しか利用できませんでした。これから、OCI自分で証明局(CA)、証明書(Certificate)、CAバンドルの作成とライフサイクル管理ができるようになりました。証明書サービスは無料で利用できます。

サポート対象のOCIサービス
Load Balancer
API Gateway
WAF (Web Application Firewall)

OCIコンソールからの入り口
image.png

サービス制限
Free Tierの場合、一つのテナンシに、最大 5 証明局(CA)、150 証明書(Certificate)が作成できます。有料アカウントの場合、以下となります。
image.png

他社の類似サービス

OCI AWS Azure Google Cloud
OCI Certificates AWS Certificate Manager App Service Certificates Google Cloud CA Service

今回は、証明局(CA)、証明書(Certificate)の作成方法と、Load Balancerからの利用方法を簡単に紹介したいと思います。

ステップ

1. 準備

1-1. IAMポリシーの作成

ポリシー名 グループ・動的グループ 目的 権限
Policy_Security_Admin SecurityAdmins セキュリティ管理者向け Vault/Key/Secretの作成・更新・削除
Policy_CA_DG CertificateAuthority-DG 動的グループ向け キーの利用、関連オブジェクトの作成・更新・削除
Policy_CA_Admin CertificateAuthorityAdmins 証明局(CA)管理者向け CAの作成・更新・削除
Policy_Certificate_Admin CertificateAdmins 証明書管理者向け 証明書の作成・更新・削除
Policy_Certificate_User CertificateUsers 証明書利用者向け 証明書の使用

動的グループ(CertificateAuthority-DG)の一致ルール
resource.type='certificateauthority'

Policy_Security_Admin

Allow group SecurityAdmins to manage vaults in compartment PoC
Allow group SecurityAdmins to manage keys in compartment PoC
Allow group SecurityAdmins to manage secret-family in compartment PoC

Policy_CA_DG

Allow dynamic-group CertificateAuthority-DG to use keys in compartment PoC
Allow dynamic-group CertificateAuthority-DG to manage objects in compartment PoC

Policy_CA_Admin

Allow group CertificateAuthorityAdmins to manage certificate-authority-family in compartment PoC
Allow group CertificateAuthorityAdmins to read keys in compartment PoC
Allow group CertificateAuthorityAdmins to use key-delegate in compartment PoC
Allow group CertificateAuthorityAdmins to read buckets in compartment PoC
Allow group CertificateAuthorityAdmins to read vaults in compartment PoC

Policy_Certificate_Admin

Allow group CertificateAdmins to inspect certificate-authority-family in compartment PoC
Allow group CertificateAdmins to use certificate-authority-delegate in compartment PoC
Allow group CertificateAdmins to manage leaf-certificate-family in compartment PoC

Policy_Certificate_User

Allow group CertificateUsers to use leaf-certificate-family in compartment PoC
Allow group CertificateUsers to use certificate-authority-delegate in compartment PoC
Allow group CertificateUsers to manage certificate-associations in compartment PoC
Allow group CertificateUsers to inspect certificate-authority-associations in compartment PoC
Allow group CertificateUsers to manage cabundle-associations in compartment PoC

この例は、ルート・コンパートメントの下に「PoC」というコンパートメントを使用しています。

1-2. ボールトの作成

メニュー → アイデンティティとセキュリティ → ボールト
ボールト名を入力し、「ボールトの作成」ボタンをクリックします。

1-3. マスター暗号化キーの作成

ボールトが作成された後、マスター暗号化キーの作成を続行します。
マスター暗号化キー → キーの作成
image.png

「保護モード」は、デフォルトのHSMにします。
「キーのシェイプ: アルゴリズム」の選択肢が以下のような三つがあります。
デフォルトは、AES(対称キー)となりますが、証明局(CA)作成時、非対称キーは必要であるので、ご注意ください。この例では、RSAを利用します。

作成後

2. 証明局(CA)の作成

Menu -> Identity & Security -> Certificate Authorities-> Create Certificate Authority

基本情報
この例は、"Root CA"を作成します。名前と説明を入力してから、続行します。
image.png

サブジェクト情報
適当な名前を入力してから続行します。必要に応じて、追加情報(オプション)を入力します。
image.png

CA構成情報

項目 内容
有効期間の開始日 デフォルトは空白(即時有効になる)。
有効期間の終了日 デフォルトは、10年後の当日00時(UTC)である。
2037年12月31日以降の日付は指定できない。
ボールト 既存のボールトを指定
キー 既存のキーを指定(HSM 非対称キー)
署名アルゴリズム キーシェイプは、RSAの場合:
SHA256_WITH_RSA, SHA384_WITH_RSA, SHA512_WITH_RSA
キーシェイプは、ECDSAの場合:
SHA256_WITH_ECDSA, SHA384_WITH_ECDSA, SHA512_WITH_ECDSA

image.png

ルール: デフォルトのままにして、続行します。
image.png

失効構成の情報オプション

項目 内容
失効のスキップ 証明書失効リスト(CRL)を構成しない場合は、チェックする。デフォルトは、チェックしない。
オブジェクト・ストレージ・バケット 既存のバケットを指定
オブジェクト名の書式 適当な名前を入力
カスタム書式設定済URL オプション

image.png

サマリー
入力した情報を確認して、作成を開始します。
image.png

CA作成後
image.png

以下のようなエラーが発生したら
Authorization failed or requested resource not found: Key Id <OCID>

原因:キーの利用権限が足りない。
解決策:動的グループの方法で、キーの利用権限を付与する。
上記のステップ1-1に、動的グループとポリシー(Policy_CA_DG)が、正しく設定されているのかを確認してください。

3. 証明書の作成

Menu -> Identity & Security -> Certificates -> Create Certificate
この例は、「内部CAによって発行済」を指定します。証明書の名前と説明を入力し、続行します。
image.png
サブジェクト情報
Common Name: ドメイン名を入力
DNS名: ドメイン名を入力
image.png

証明書のの構成情報を入力します。

項目 内容
証明書プロファイル・タイプ 選択肢(四つ):
TLS Server or Client, TLS Server, TLS Client, TLS Code Sign
発行者認証局 既存のCAを指定
有効期間の開始日 デフォルトは空白(即時有効になる)。
有効期間の終了日 デフォルトは、90日後の当日00時(UTC)である。
発行CAの有効期限を超えてはいけない。2037年12月31日以降の日付も指定できない。
キー・アルゴリズム 選択肢(四つ):
RSA2048, RSA4096, ECDSA_P256, ECDSA_P384

※この例は、「有効期間の終了日」について、デフォルトの90日後ではなく、50日後の日付にしています。
image.png

項目 内容
更新間隔(日数) デフォルトは、90日間である。
前画面の「有効期間の終了日」より、自動に計算される。
前払更新期間(日数) デフォルトは、30日間

image.png

サマリー画面で、入力した情報を確認します。
image.png

証明書作成後
image.png

以下のようなエラーが発生したら
The validity period <number> exceeds the maximum validity period allowed <number>.
原因: 指定した有効期間の日付は無効である。証明書の有効期間は、CAの有効期間を超えてはいけない。
解決策: 有効な日付を指定し、もう一回作成する。

4. Load Balancerから証明書の使用

LBの作成
MENU -> Networking -> Load Balancers -> Create Load Balancer
LBの構成情報は以下となります。作成画面の詳細を省略させていただきます。

項目 内容
LBタイプ 従来通りの"Load Balancer"
可視性タイプ パブリック
シェイプ フレキシブル・シェイプ
ロード・バランシング・ポリシー Weighted Round Robin
ヘルス・チェック・ポリシー HTTP
リスナー HTTPS
SSL Traffic SSL Termination
フロントはHTTPSで、バックエンドはHTTPである。

この例で、バックエンドのヘルス・チェック・ポリシーは、HTTPを利用しています。もし、SSLを利用したい場合、次のように証明書の指定ができます。(CAバンドルか証明局のどちらを指定する)
image.png

リスナー構成画面で、証明書を指定してください。
image.png

LB作成後、ヘルスステータスがOKであることを確認します。
image.png

認証局(CA)と証明書のPEMファイルをダウンロードして、接続端末のブラウザを開き、次のように証明書をインポートします。

  • 信頼されたルート証明機関に、認証局(CA)のPEMファイルをインストール。
  • 信頼された発行元に、証明書のPEMファイルをインストール。

ドメイン名とLBのIPアドレスの紐付け
ドメイン名を識別できるように、以下のいずれの方法はOKです。

  • 方法1:Windowsホストファイルの編集
    作業対象:接続端末
    編集ファイル名:C:\Windows\System32\drivers\etc\hosts
    編集内容:次の行を追加する
    例:<LBのIPアドレス> xxx.com

  • 方法2:LBのパブリックIPをDNSレコードに追加して、公開する。
    image.png

動作確認
ブラウザを開き、ドメイン名(https://xxxx.com)で無事にWelcomeページが表示できるのを確認します。
image.png

証明書は有効であるのを確認します。

ここまで、証明書の作成とLBからの利用は完了です。

以上

関連記事
オラクル・クラウドの個人シリーズ・ブログ


公式ドキュメント
証明書
認証局の管理
ポリシー・リファレンス -> 証明書サービスの詳細
ロード・バランサのSSL証明書管理
証明書サービスのトラブルシューティング
OCI Certificates FAQ

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0