「KUSANAGI」応用テクニック 常時SSLとHTTP/2の導入方法(Let's Encrypt編):とにかく速いWordPress(13)(2/3 ページ)
エンタープライズ用途での利用が増えている「WordPress」の高速化チューニングテクニックを解説する本連載。今回は、WordPressサイトを常時SSLとHTTP/2に対応させ、無償SSLサーバ証明書であるLet's Encryptを導入する方法を解説します。
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)。
さらに、表示されたウィンドウの「詳細」をクリックすると、デベロッパーツールの「Security Overview」パネルが起動します。その中の「View certificate」を選択すると、「証明書の情報」が表示されます。発行者がLet's Encriptとなっていれば、Let's Encriptが正しく有効になっています(図2)。
続いて、デベロッパーツールの「Network」タブに移り、「F5」キーでリロードすると、Webページから読み込まれている各リソースの情報が表示されます(図3)。
表示されたリソースの「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
これで、WordPressのHTTP/2とLet's Encryptを用いた常時SSL環境は完成です。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 容易にWebサービスを高速化できるNginxを使いこなすための秘訣とは
高速で軽量なOSSのWebサーバとして注目されている「Nginx」。使いこなすための課題や有効なアーキテクチャ構成などをサイボウズでの導入事例と共に明かす。 - 高速・軽量・高機能……Nginxの基礎知識
処理能力の高さなどを理由に、近年、大規模サイトを中心に急速にシェアを拡大しているWebサーバー「Nginx」。この連載では、その特徴と魅力を分かりやすく紹介します。 - WordPress自体のチューニングが必要な理由と高速化の基本的な考え方
企業のCMSサイトやオウンドメディアなどエンタープライズ用途での利用が増加しているWordPressの高速化について解説する連載。初回は、WordPressの高速化が求められる背景や、WordPress高速化の基本的な考え方であるページのロード時間とその構成要素、1秒当たりの同時アクセス数について解説します。