😇

さくらのエンハンスドLBにLet's Encryptを設定したら有償証明書が消えた話

に公開

はじめに

さくらのクラウドが提供するエンハンスドロードバランサ(以下、エンハンスドLB)では、Let's Encryptによる無料SSL証明書の自動発行・更新機能が使えるようになっています

とても便利な機能ですが、使い方を誤ると本番の有償SSL証明書が上書きされるという落とし穴があります


エンハンスドロードバランサとLet's Encryptの仕様

さくらのエンハンスドLBで提供されるLet's Encrypt機能の概要は以下の通りです

  • 対象ドメインのDNSがエンハンスドLBを指している必要あり(ACME認証のため)
  • 証明書は自動取得・HTTPSリスナーに自動割当される
  • 発行される証明書は、自動的に「プライマリ証明書」として登録
  • 90日ごとに有効期限があり、35日前から自動更新処理が毎日実行される
  • ワイルドカード証明書には非対応

🔧 技術仕様(公式マニュアルより抜粋)

Let's Encrypt証明書自動インストール・更新機能

項目 内容
鍵形式 / 鍵長 RSA 2048bit
ワイルドカード 非対応
SAN(Subject Alternative Name) 対応(最大20件まで)
認証レベル DV(ドメイン認証)
自動更新 有効期限の35日前より毎日実施(更新成功まで)
手動更新 対応(管理画面から実行可能)

基本的に認証局「Let's Encrypt」が発行する証明書の仕様に準じた内容となります。


何が起きたか

さくらのエンハンスドLBへの証明書設定時に以下のことが起きました

  • 本番ドメインに有償のSSL証明書をプライマリに設定済み
  • テストドメインでLet's Encryptを設定しようとした
  • DNSの向き先を変更し、Let's EncryptをONに設定
  • 本番ドメインで使っていた有償証明書が上書きされて消滅
  • アクセスするとSSLエラーが発生

原因と仕様

公式マニュアルにも、以下のように注意書きがあります

Let's Encrypt機能で自動設定される証明書はエンハンスドロードバランサのプライマリ証明書として扱われます。すでにプライマリ証明書が設定済みの場合は上書きされますのでご注意ください(オプショナル証明書には影響ありません)

※Let's Encrypt設定する際にも注意書きはありました
プライマリが上書き

つまり、Let's EncryptをONにすると、それまでのプライマリ証明書が上書きされてしまう仕様なのです(オプショナルへ移動させてくれるなどの優しさはない)

対策・回避策

もし、有償証明書をあらかじめ設定しておき、後からLet's Encryptを設定する場合は以下の対応が考えれます

有償証明書はオプショナル証明書として登録しておく

Let's Encryptを適用する前に、プライマリになっている有償証明書をオプショナルに変更しておききます。 これにより、Let's Encryptがプライマリに登録されても、有償証明書は残ります

適用後に証明書を再設定する

誤って上書きされた場合でも、手動で再設定することで復旧できます(証明書ファイルが手元にあれば)


まとめ

  • Let's Encryptは非常に便利だが、自動でプライマリに設定される仕様に注意
  • 有償証明書をあらかじめ設定しており、後からLet's Encryptを設定する場合は、事前に「オプショナル証明書」にしておくこと

Discussion