BWAFとLet’s Encryptで常時SSL化

はじめに

 常時SSL化は、ウェブサイトを構築する上では、今や、必須です。となると、SSLサーバ証明書の入手も必須となるわけですが、費用も高いOV(企業の実在性認証)までのサーバ証明書はいらないし、DV(ドメイン認証)で十分という場合もあるでしょう。そんなときは、無料のSSLサーバ証明書であるLet’s Encryptを検討してみるのもよいかと思います。

 認証局の市場 で、 Let’s Encrypt の認証局であるIdenTrust社は、 他の認証局が横ばいかシェアを落としている中で、堅調な伸びを見せ、50%のシェアに達しました。Let’s Encryptは全世界から認められた実績豊富な証明書だと言えるでしょう。では、本格的なWeb Application Firewall(以下、WAF)である、Barracuda Web Application Firewall(以下、BWAF)とLet’s Encryptを使って、WAFで高度な防御を実施しつつ、常時SSL化してみましょう。

1%以上の市場シェアを持つSSL認証局のシェア推移グラフ - 資料: Q-Success提供

準備

1.BWAFで、HTTPサービスを作成し、HTTPサービスをアクティブモードに設定します。設定方法は、以下の記事を参照ください。

2.DNS ホスト 名(FQDN)でHTTPサービスへアクセスできることを確認します。

3.ウェブサーバがHTTPSに対応しているか、対応しているなら、どのように設定するのかを確認しておきます。

注意

BWAFのHTTPサービスをパッシブモードのままで動作させているとLet’s EncryptのSSLサーバ証明書が入手できません。はまるポイントでもあるので、ご注意ください。私は、新規にサイトを構築しているとついつい忘れがちで、毎回、はまっています。

BWAFの設定

Let’s Encryptの証明書を入手

 基本設定>証明書画面へ移動します。

 証明書アップロード作成セクションの「Let’s Encryptを使用する」をクリックします。

 証明書作成の画面がポップアップしますので、以下の情報を入力し、「証明書の作成」ボタンをクリックします。

  •  証明書名:任意
  • コモンネーム:ウェブサーバのDNS ホスト 名(FQDN)
  • SAN: ウェブサーバのDNSホスト名(FQDN)
  • サービス:ウェブサーバを防御するために作成したHTTPサービスを選択します。
  • 国、都道府県、市区町村、組織名:ウェブサーバの所有者の情報を入力します。

 Let’s EncryptのSSLサーバ証明書の入手の状況を確認するには、高度な設定>タスク画面に移動します。

 SSLサーバ証明書の入手には、 5分ほどかかります。少々お待ちください。

 タスクが消えたら、基本設定>証明書画面へ移動し、証明書が作成されていることを確認します。証明書が作成されていない場合には、HTTPサービスのモードがアクティブとなっているか、ブラウザで、DNSホスト名(FQDN)でウェブサイトにアクセスできることを再度確認してください。

HTTPSサービスの作成

 基本設定>サービス画面へ移動します。

 以下の内容で、HTTPSサービスを作成します。

  • サービス名:任意
  • タイプ:HTTPS
  • ポート:443
  • 実サーバ:ウェブサーバのIPアドレス
  • 証明書:Let’s Encryptの証明書を選択します。

 これで、HTTPSでウェブサイトへアクセス可能となりました。しかし、 ブラウザからHTTPSアクセスした場合に、ページが正しく表示されない事もあります。その理由としては、ウェブサーバが、HTTPSサイトに対応できていないためです。ウェブサーバ側での設定変更が必要となります。

HTTP通信をHTTPSサービスへリダイレクト

注意

 以降の手順を実行する前に、必ず、HTTPSでウェブサイトへアクセスし、正しくページが表示されることを確認してください。

 このままでは、HTTPサービスとHTTPSサービスの両方へアクセスできる状態なので、検索エンジンからすると新たにもう1つのサイトができあがったのと同じです。とはいっても、HTTPサービスへのアクセスを止めてしまっては、今までの検索順位を上げるために費やしたお金も時間も無駄になってしまいます。これだけは避けたいですよね。

 そのため、影響を最小限とするため、HTTP通信をHTTPSサービスへリダイレクトします。

 HTTPサービスの「削除」をクリックし、HTTPサービスを削除します。

 以下の内容で、リダイレクトサービスを作成します。このサービスを作成することで、HTTPのアクセスがあれば、同じサービスグループ内にあるHTTPSサービスへリダイレクトすることができます。

  • サービス名:任意
  • タイプ:リダイレクトサービス
  • ポート:80

HSTSの有効化

 HTTPSのURLが検索エンジンに評価され検索順位が上がっていけば、HTTPからのサイトへの流入は減っていきます。しかし、HTTPのURLがブラウザにブックマークされていたり、検索エンジンからのサイト流入ではない場合には、いつまでたっても、HTTPのアクセスがなくなりません。そのために、HSTSを利用していきます。

HSTSとは

これを利用することで、このサイトへのアクセスには、HTTPではなくHTTPSで必ず接続するようにとブラウザに指示します。この指示を受け取ったブラウザは、その情報を記録しておき、以降は、そのサイトに対してアクセスするのにHTTPを使わず自動的にHTTPSで接続するようにします。

 HTTPSサービスを「編集」をクリックして、編集します。


  • HSTSの有効化:はい
  • HSTSの有効期間:1日
おすすめ

指定した期間の間は、ブラウザはHTTPS通信のみ行います。そのため、後で、やっぱりHTTP通信も使えるようにしたいと思っても、その期間が経過するまでは何もできません。そのため、設定直後の検証期間は、短期間で設定しておいて、問題がないことが確認出来てから1年や2年と設定することをお勧めします。

おわりに

 BWAFとLet’s Encryptの証明書を使って、ウェブサイトの常時SSL化を行いました。設定に自信がないという場合には、フルマネージド型のSaaS版、Barracuda WAF-as-a-Service SMAC Editionがあります。導入、設定、運用をすべてお任せしたいという場合には、お勧めです。WAFの設定や証明書の更新もすべておまかせできます。