はじめに
1年ほど前に証明書サービスがリリースされていましたが記事にしていませんでした
また、OCIのロードバランサにSSL証明書を適用する手順を記載した こちらの記事 が、OCI+LB+証明書という検索ワードでまだまだ上位に入っていますので、証明書サービスで管理している証明書をロードバランサに適用する手順も紹介したいと思います
証明書サービスとは
まず、証明書サービスでできることを簡単にですが紹介したいと思います
証明書サービスでは、プライベートCAによる証明書の発行、格納および管理機能(失効や自動更新も含む)が提供され、ロードバランサなどの証明書を必要とするリソースとシームレスに連携することが可能となります
また、サードパーティーCAにて発行された証明書をインポートすることも可能で、その場合にもロードバランサと組み合わせて利用することもできますが、証明書の自動更新などは行うことはできません
証明書サービスの証明書および認証局(CA)でできることなどは、 ドキュメント を確認していただければと思います
なお、本記事では上記に記載したようにOCI内部にプライベートCAを作成して、自己証明書を作成・利用することもできますが、以前の記事との対比を考慮し、サードパーティー(Let’s Encrypt)にて発行した証明書を使用する手順を紹介したいと思います
証明書のインポート
大まかな手順は 証明書のインポート の手順に沿って実施するだけですが、証明書チェーンに関してはドキュメントの説明だけでは不十分と感じますので、補足説明を行いたいと思います
1. 証明書の作成
ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」->「証明書」をクリック、証明書一覧で「証明書の作成」をクリックします
2. 証明書の基本情報
サードパーティーにて発行された証明書を証明書サービスで管理したいので、証明書タイプは インポート済
を選択します
証明書の識別用の名前と説明は任意の情報を入力致します
3. サブジェクト情報
証明書をインポートする場合は、サブジェクト情報を入力する必要はありません
4. 証明書構成
インポートする証明書の情報をアップロード or 内容の貼り付けを行います
今回は、Let’s Encryptで発行した証明書を設定します
4.1. 証明書
certbotコマンドを実行して発行された、cert.pemの内容を貼り付けます
4.2. 証明書チェーン
トラブルシューティング に記載されているのですが、 証明書チェーンにルート証明書までのすべての認証局(CA)証明書が含まれていること
とあります
そのため、certbotコマンドにて発行された証明書情報の chain.pem では中間CA証明書の内容しか含まれていないために、証明書の登録に失敗してしまいます
そこで、 Let’s Encryptのサイト よりルート証明書と中間CA証明書をダウンロードします
※Let’s Encryptは isrg-hierarchy.png の画像にある階層構造となっていますので、今回は ISRG Root X1 をルート証明書とし、R3 を中間CA証明書とする構成で設定を行いたいと思います
証明書チェーンには、上記でダウンロードした、中間CA証明書、ルート証明書の順に内容を貼り付けます
ここで順番が異なっていたり、中間CA証明書のみやルート証明書のみを貼り付けた場合は、インポートに失敗してしまいますので注意が必要です
4.3. 秘密キー
privkey.pem の内容を貼り付け、秘密キーのPEMパスフレーズは空白のままとします
5. ルール
証明書サービスで管理されない証明書の自動更新を構成することはできません
6. 最終確認
上記のステップで入力した内容などの最終確認が表示されるので、表示された内容が正しければ証明書の作成をクリックして作成します
7. 作成後
入力した証明書、証明書チェーン、秘密キーの情報が正しければ証明書がインポートされ、しばらくすると ACTIVE になります
LBへ証明書の設定
1. リスナーに証明書を設定する
以前の記事では、リスナーの証明書選択は証明書リソースの選択は無く、登録されている証明書の選択のみでしたが、証明書サービスがリリースされたため、現在では証明書リソースという選択肢が新たにできています
今回は、証明書サービスにインポートした証明書を使用したいので、 証明書サービス管理対象証明書
を選択し、証明書サービスにインポートした証明書を選択します
2. 証明書一覧
リスナーへ証明書の関連付けを作成すると、証明書一覧に証明書とリスナーの情報が表示されるようになります
ブラウザで確認
まとめ
上記が証明書サービスにサードパーティで発行した証明書をインポートする手順と、証明書のロードバランサへの適用手順となります
従来のロードバランサに証明書を登録する手順よりもステップが多くなりますが、証明書を更新する際には新しい証明書を証明書サービスに登録するだけで、自動的にリスナーに反映されるメリットがあります
もし、ワイルドカード証明書を使用しており、複数のリスナーに証明書を適用している場合にはリスナーへの証明書の適用漏れの心配が無くなりますので、証明書サービスの利用を一考していただければと思います