Barracuda CloudGen WAFからLet's Encryptの無料SSL証明書を取得する
はじめに
前回の記事ではAzure上にBarracuda CoudGen WAFをHA構成で導入しましたが、SSLオフロードの設定で利用するSSL証明書は自前のDigi Certのものを利用していました。
【前回の記事】
Azure上にBarracuda CloudGen WAFをHA構成で構築(WAF設定編)
独自ドメインを取ったり、ネームサーバのレコード編集をしたりは比較的ハードルが低い(V○lue D○mainとか、お名○.comとか)のですが、やはり有償のSSL証明書取得はDV証明書であってもそれなりのお値段がするので、Let’s Encryptを使ったSSL証明書取得を試しました。
Let’s Encryptとは
誤解を恐れずに簡単に説明すると、無料のDV(ドメイン認証)型のSSL証明書です。
有効期限は90日で、期限が来る前に証明書の更新を行う必要があります。
nginxのモジュールがあったりと、SSL証明書取得・更新の手間を軽減するサポートツールが各Webサービス側に用意がされており、Barracuda CloudGen WAFにも証明書管理メニューからLet’s Encryptの証明書取得と自動更新の設定が行えます。
ファームウェアの最新化
まずは問題発生時に切り分け箇所を少なくするために、WAFのファームウェアは最新に上げておきます。
私は10.0.0.010(2019-05-27)で試しましたが、多分9.x系でも大丈夫だとは思います。
httpサービスの有効化とWAFモードの変更
Barracudaのサイトにも前提条件にかかれていますが、以下の条件をクリアしておきます。
- HTTPサービスを作成し、そのサービスがACTIVEモードになっていること
- ドメインがTCPポート80でインターネット経由でアクセス可能であること
- ドメインが上記で作成したHTTPサービスにアクセス可能であること
要するに http://mydomain/
でサイトが表示できるようにしておくことと、WAFの設定はパススルーモードではなく、しっかりブロックするアクティブモードにしておく必要があります。
「基本設定」→「サービス」から事前に作成したサービスのEditをクリックして、編集画面を開きます。
httpサービスを作成した際のデフォルトではパッシブモードになっているので、こちらをアクティブに変更して保存します。
httpのサービス追加方法の詳細については、以下サイトの「http(TCP/80)によるWAF経由のアクセス」あたりの章を先に確認するといいでしょう。
Azure上にBarracuda CloudGen WAFをHA構成で構築(WAF設定編)
Let’s Encrypt証明書の取得
「基本設定」→「証明書」画面から、「Let’s Encrypt」をクリックします。
「証明書名」は適当に、「コモンネーム」と「SAN」にはDNSに登録したFQDNを入力します。
「Services」は先に作成したhttpサービスの名前を選択。「国、都道府県、市区町村、組織名」は任意の値を正直に、「Renew Automatically」は自動更新が必要であれば「はい」を選択して、更新タイミングを選択します。
最後に「証明書の作成」をクリックします。
「証明書」をクリックすると画面がリロードされます。
暫く以下の画面の様に実行中のタスクが表示されます。
暫く待つと先に登録した証明書が一覧に追加されました。
証明書の適用と確認
証明書は登録しただけでは有効になりませんので、httpsサービスの証明書を設定します。
私は既に以前のエントリで別の証明書を使ってhttpsサービスの作成を行っていましたので、バインドする証明書を入れ替えるだけです。
具体的な設定は以下サイトの「https(TCP/443)によるWAF経由のアクセス」あたりの章を先に確認するといいでしょう。
Azure上にBarracuda CloudGen WAFをHA構成で構築(WAF設定編)
ブラウザからの確認
任意のブラウザからhttps://mydomain/
にアクセスして、証明書が正しく設定されていることを確認します。
おわりに
WAF導入直後はWAFのモードが「パッシブ」となっているため、ドキュメントをちゃんと読まないとLet’s Encryptからのドメイン認証がうまく通らずに苦戦すると思います。(実は私もそうですw
少しでも本記事が役に立てばいいなと思います。