「KUSANAGI」応用テクニック 常時SSLとHTTP/2の導入方法(Let's Encrypt編)とにかく速いWordPress(13)(2/3 ページ)

» 2016年10月05日 05時00分 公開
[中村けん牛プライム・ストラテジー]

KUSANAGI上に、常時SSL化した新しいWordPressサイトを構築する

 では、KUSANAGI上に常時SSL化した新しいWordPressサイトを構築していきましょう。今回は無償で使えるLet's Encryptを用います。

Let's Encryptとは

 Let's Encryptは、無償でSSL/TLSサーバ証明書を発行するオープンな認証局です。証明書の発行/インストール/更新のプロセスを自動化することで、証明書の取得にまつわるコストや手間を低減できる特徴があります。

 認証方法はドメイン認証です。認証時点で、Let's EncryptのサーバからLet's Encryptを利用しようとするWordPressサイトのサーバまで、利用するのホスト名でアクセスが可能な状態にしておく必要があります。つまり、Let's Encryptの設定を行う段階で、インターネット上でホスト名の名前解決が可能でなければなりません。

 この条件は、新しくDNSサーバにホスト名を設定する場合ならばあまり問題にはなりませんが、既にWebサーバが稼働しており、DNSサーバにそのホスト名が設定されている場合には若干の注意が必要です。先にDNSの設定を切り替えておき、インターネット上でその設定が反映されている必要があります。

 証明書の有効期限は90日です。運用においては、90日ごとの更新作業が発生します。なお、KUSANAGI上で構築するならば、証明書の更新作業は自動化できます。

 証明書の取得は、登録ドメイン1つ当たり週に20回までとするなどの回数制限があります。独自ドメインで運用する環境ならばあまり問題になりませんが、例えばAmazon Web Services(AWS)上に構築する仮想マシンのホスト名「ec2-xxx.xxx.compute.amazonaws.com」など、パブリッククラウドで自動的に割り当てられたホスト名の場合には利用できないと考えた方がよいでしょう。


構築手順

 今回は、利用するホスト名を独自ドメインで用意済みであり、かつDNSの設定が済んでいることを前提にします。また、本稿でのホスト名は「xxx.example.com」とダミー文字列で記述しますので、適宜自身の環境に置き換えて設定を進めてください。

 では、第12回『“いきなり1000倍高速”WordPress仮想マシン「KUSANAGI」は、実際にどれだけ速いのか』で解説した、AWS以外の部分の手順を参考に、KUSANAGIを起動して『【2】「KUSANAGI」の初期設定方法』まで済ませてください。

 続いて、KUSANAGIのプロビジョニングを行い、KUSANAGIへWordPressをインストールします。以下のサイトを参考に作業を進めます。

 プロビジョニングの作業では、常時SSLを利用するホスト名として「xxx.example.com」と指定し、「Let's Encryptの設定」で、確認用のメールアドレスを2回入力します。

 WordPressのインストール作業では、設定したホスト名にHTTPSプロトコルでアクセスしてWordPressをインストールしていきます。具体的には、「https://xxx.example.com」のように、httpsで始まるURLでアクセスします。

 WordPressのインストールが終了したら、Webブラウザでトップページを確認します。Google Chromeを例にすると、URL入力欄にある鍵アイコンをクリックして、「このサイトの接続はプライベート接続です」と表示されれば、SSLが有効になっています(図1)。

photo 図1 鍵アイコンをクリックして、接続を確認する

 さらに、表示されたウィンドウの「詳細」をクリックすると、デベロッパーツールの「Security Overview」パネルが起動します。その中の「View certificate」を選択すると、「証明書の情報」が表示されます。発行者がLet's Encriptとなっていれば、Let's Encriptが正しく有効になっています(図2)。

photo 図2 証明書の情報を確認

 続いて、デベロッパーツールの「Network」タブに移り、「F5」キーでリロードすると、Webページから読み込まれている各リソースの情報が表示されます(図3)。

photo 図3 「Network」タブで、Webページから読み込まれている各リソースの情報を確認する

 表示されたリソースの「Protocol」フィールドに、「h2」と記述されていれば、HTTP/2プロトコルが有効になっています(Protocolフィールドが見当たらない場合は、フィールド表記列で右クリックするとフィールドの追加項目が表れます)。また、左のTimelineフィールドでは、HTTP/2によって「並列ダウンロード」が実行された様子を確認できます。

常時SSL化の仕上げを行う

 ここまでの作業で、HTTP/2とLet's EncryptでのSSL化が完了しました。しかし、このままではHTTPでのアクセスも可能です。

 そこで、HTTPへのリクエストは「HTTPSにリダイレクト」させ、かつ、一度アクセスのあったユーザーには「次回以降、HTTPへのアクセスであっても、自動的にHTTPSへアクセスさせる」ように、ブラウザ上で制御させる仕組みである「HSTS(HTTP Strict Transport Security)」を有効にします。Let's Encryptの自動更新を有効にする作業と一緒に設定しましょう。

 コンソールから、管理者ユーザーで次のコマンドを入力します。

kusanagi ssl --https redirect --hsts weak --auto on
HSTSとLet's Encryptの自動更新を有効を有効にするKUSANAGIコマンド

 これで、WordPressのHTTP/2とLet's Encryptを用いた常時SSL環境は完成です。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。