1. TOPTOP
  2. Webサービス

バーチャルホストのWordPressサイト(複数ドメイン)で無料SSL証明書 Let’s Encryptの導入

|

free_ssl_lets_encryprt_1

先日、WordPressサイト 無料SSL証明書 Let’s Encryptの導入から「保護された通信」の表示まで(新しいタブで開く)という記事を書きました。今回は、バーチャルホスト上で複数のドメインが存在するWordPressサイトで無料SSL証明書 Let’s Encryptを導入する方法をご説明します。なお今回の記事は、以下のページを参考にしています。

複数ドメインのSSL証明書を取得する方法

バーチャルホストでLet’s Encryptを導入するといっても、導入方法はさくらのナレッジ(新しいタブで開く)で紹介されている方法と基本的には同じです。

ただし、さくらのナレッジでは1つのサーバーに対して、1つのドメインが対応していますが、バーチャルホストの場合は1つのサーバーに対して複数のドメインが対応していますのでそのための配慮が必要となります。

certbotコマンドのオプションを複数に

Let’s EncryptのSSL証明書の取得と更新するためにcertbotというコマンドがあります。このcertbotコマンドのオプションに関する記述を変更します。

ドメインが1つだけの場合

# certbot --apache -d example.com

1つのサーバーに対して1つのドメインしかない場合は、さくらのナレッジの記事にある通り、dオプションとそれに続くドメイン名は1つだけです。

ドメインが複数ある場合(バーチャルホスト)

# certbot --apache -d example.com -d hogehoge.com

一方、1つのサーバーに対して複数のドメインが存在している場合、その存在しているドメインについて全てdオプションをつけて当該ドメイン名をすべて列挙していきます。

上記のコマンドは、”example.com”と”hogehoge.com”についてSSL証明書を取得するようにcertbotコマンドを実行しています。

「保護された通信」が表示されない場合の対応

ドメインの表示が”https://~”となっていても、そのURLの横に”保護された通信“という表示がされていないと、パソコンとサーバ間の通信データを暗号化していることをGoogle先生に認められません。

「保護された通信」が表示の有無を確認

今回自分が試したケースでも、certbotコマンドを実行しても”保護された通信”という表示がされたドメインと、そうでないドメインがあることが分かりました。

free_ssl_lets_encryprt_in_virtualhost_1_2

こちらのドメインはcertbotコマンド一発で”保護された通信”が表示されました。

free_ssl_lets_encryprt_in_virtualhost_2 2

一方こちらのドメインには”保護された通信”は表示されませんでした。

Really Simple SSLの実行

“保護された通信”は表示されなかったWordPressサイトには、プラグインのReally Simple SSL(新しいタブで開く)をインストールして有効化します。

Really Simple SSLをインストールして有効化すると、ダッシュボードでサイト全体をSSL化するように促されます。”Go Ahead”というボタンをクリックすると、サイト全体が常時SSL化されます。

free_ssl_lets_encryprt_in_virtualhost_4

これでcertbotコマンドだけでは”保護された通信”が表示されなかったWordPressサイトににも、”保護された通信”が表示されるようになりました。

注意点

free_ssl_lets_encryprt_3

以上の内容でも”保護された通信”が表示されない場合は、Chromeのアドレスバーに、chrome://flags/#show-cert-linkを入力しアクセスするとこの画面が表示されます。

その中でShow certificate linkの項目に注目します。この項目はデフォルトでは無効化になっていますので有効化します。上記の画面は有効化した後の画面です。