‹ ハウツー に戻る

チュートリアル: のWordPressインスタンスで Let's Encrypt の SSL 証明書を使用する Amazon Lightsail

最終更新日: 2021 年 1 月 21 日

Amazon Lightsail では、Lightsail ロードバランサーを使用すると、SSL/TLS でウェブサイトとアプリケーションのセキュリティを強化できます。ただし、Lightsail ロードバランサーの使用は一般的に最適な選択肢ではない場合があります。ロードバランサーが提供するスケーラビリティや耐障害性がサイトでは必要ない場合や、コストを最適化するためにロードバランサーを使用しない場合があります。後者の場合は、Let's Encrypt の無料の SSL 証明書を利用できます。無料の証明書を使用することに問題はありません。これらの証明書を Lightsail インスタンスに統合できます。

このチュートリアルでは、Certbot を使用して Let's Encrypt 証明書をリクエストする方法を示します。また、Bitnami HTTPS 設定 (bncert) ツールを使用して、Certified by Bitnami WordPress インスタンスで HTTPS を有効にすることもできます。これにより、プロセスを合理化できます。さらに、 bncert ツールは証明書を自動的に更新しますが、Certbot には更新されません。bncert ツールの使用の詳細については、「 のインスタンスで HTTPS WordPressを有効にする」を参照してくださいAmazon Lightsail

注意

「Certified by Bitnami」インスタンスで使用される Linux ディストリビューションは、2020 年 7 月に Ubuntu から Debian に変更されました。この変更により、このチュートリアルのステップの一部は、インスタンスの Linux ディストリビューションによって異なります。変更後に作成されるすべての「Certified by Bitnami」インスタンスは、Debian Linux ディストリビューションを使用します。変更前に作成されたインスタンスは、Ubuntu Linux ディストリビューションを使用し続けます。インスタンスのディストリビューションを確認するには、 uname -a コマンドを実行します。レスポンスには、インスタンスの Linux ディストリビューションとして Ubuntu または Debian のいずれかが表示されます。

目次

ステップ 1: 前提条件を満たす

以下の前提条件を満たします (まだ満たしていない場合)。

前提条件を完了したら、このチュートリアルの次のセクションに進みます。

ステップ 2: Lightsail インスタンスに Certbot をインストールする

Certbot は、Let's Encrypt の証明書をリクエストしてウェブサーバーにデプロイするために使用するクライアントです。Let's Encrypt は ACME プロトコルを使用して証明書を発行します。Certbot は、Let's Encrypt とやり取りする ACME 対応のクライアントです。

    Lightsail インスタンスに Certbot をインストールするには

  1. Lightsail コンソール.にサインインします。

  2. Lightsail のホームページで、接続先のインスタンスの SSH クイック接続アイコンを選択します。

    Lightsail ホームページの SSH クイック接続。
  3. Lightsail のブラウザベースの SSH セッションに接続したら、次のコマンドを入力してインスタンスのパッケージを更新します。

    sudo apt-get update
    インスタンスのパッケージを更新する。
  4. 次のコマンドを入力してソフトウェアプロパティパッケージをインストールします。Certbot の開発者は、Personal Package Archive (PPA) を使用して Cerbot を配信します。ソフトウェアプロパティパッケージを使用すると、 を効率的に操作できますPPAs。

    sudo apt-get install software-properties-common

    注意

    Could not get lock コマンドを実行したときに sudo apt-get install エラーが発生した場合は、約 15 分待ってから再試行してください。このエラーは、自動アップグレードをインストールするために Apt パッケージ管理ツールを使用している cron ジョブが原因で発生している可能性があります。

  5. 次のコマンドを入力して Certbot をローカル apt リポジトリに追加します。

    注意

    ステップ 5 は、Ubuntu Linux ディストリビューションを使用するインスタンスにのみ適用されます。インスタンスで Debian Linux ディストリビューションを使用している場合は、このステップをスキップします。

    sudo apt-add-repository ppa:certbot/certbot -y
  6. 次のコマンドを入力して apt を更新し、新しいリポジトリを含めます。

    sudo apt-get update -y
  7. 次のコマンドを入力して Cerbot をインストールします。

    sudo apt-get install certbot -y

    これで Lightsail インスタンスに Cerbot がインストールされました。

  8. ブラウザベースの SSH ターミナルウィンドウは開いたままにします。このチュートリアルで後ほど戻ります。このチュートリアルの次のセクションに進みます。

ステップ 3: Let's Encrypt の SSL ワイルドカード証明書をリクエストする

Let's Encrypt の証明書をリクエストするプロセスを開始します。Certbot を使用してワイルドカード証明書をリクエストします。この 1 つの証明書をドメインとそのサブドメインの両方に使用できます。たとえば、1 つのワイルドカード証明書を example.com 最上位ドメイン、blog.example.com サブドメイン、および stuff.example.com サブドメインに使用できます。

    Let's Encrypt の SSL ワイルドカード証明書をリクエストするには

  1. このチュートリアルのステップ 2 で使用した同じブラウザベースの SSH ターミナルウィンドウで、以下のコマンドを入力してドメインの環境変数を設定します。コマンドをコピーして貼り付け、より効率的に証明書を取得できます。domain は登録済みのドメイン名に置き換えてください。

    DOMAIN=domain
    WILDCARD=*.$DOMAIN

    例:

    DOMAIN=example.com
    WILDCARD=*.$DOMAIN
  2. 次のコマンドを入力し、変数が正しい値を返すことを確認します。

    echo $DOMAIN && echo $WILDCARD

    次のような結果が表示されます。

    ドメインの環境変数を確認する。
  3. 次のコマンドを入力して Certbot をインタラクティブモードで起動します。このコマンドでは、DNS チャレンジで手動認証を使用してドメインの所有権を検証することを Certbot に指示します。また、最上位ドメインとそのサブドメイン用にワイルドカード証明書をリクエストします。

    sudo certbot -d $DOMAIN -d $WILDCARD --manual --preferred-challenges dns certonly
  4. プロンプトに応じて E メールアドレスを入力します。これで更新とセキュリティに関する通知を受信します。

  5. Let's Encrypt のサービス利用規約を読みます。同意する場合は A キーを押します。同意しない場合は、Let's Encrypt の証明書を取得できません。

  6. E メールアドレスの共有と IP アドレスのログ記録に関するプロンプトに適切に応答します。

  7. Let's Encrypt から、指定されたドメインの所有者であることの検証を求められます。これを行うには、ドメインの DNS レコードに TXT レコードを追加します。以下の例に示すように 2 組の TXT レコード値が提供されます。

    注意

    Let's Encrypt は、検証に使用する必要がある 1 つまたは複数の TXT レコードを提供する場合があります。この例では、検証に使用する 2 つの TXT レコードが提供されました。

    Let's Encrypt の証明書の TXT レコード。
  8. Lightsail のブラウザベースの SSH セッションは開いたままにします。このチュートリアルで後ほど戻ります。このチュートリアルの次のセクションに進みます。

ステップ 4: でドメインの DNS ゾーンに TXT レコードを追加するLightsail

ドメインの DNS ゾーンに TXT レコードを追加すると、自分がドメインを所有していることが検証されます。ここでは、デモの目的で Lightsail の DNS ゾーンを使用します。ただし、ドメインレジストラがホストする他の一般的な DNS ゾーンでも手順はほぼ同じです。

注意

ドメインの Lightsail DNS ゾーンの作成方法の詳細については、「Amazon Lightsail で DNS ゾーンを作成し、ドメインの DNS レコードを管理する.」を参照してください。

    でドメインの DNS ゾーンに TXT レコードを追加するにはLightsail

  1. Lightsail ホームページで、[ネットワーキング] タブを選択します。

  2. ページの [DNS ゾーン] セクションで、Certbot 証明書リクエストで指定したドメインの DNS ゾーンを選択します。

  3. DNS ゾーンエディタで [レコードの追加.] を選択します。

    Lightsail コンソールの DNS ゾーンエディタ。
  4. レコードタイプのドロップダウンメニューで [TXT レコード.] を選択します。

  5. 次のスクリーンショットに示すように、Let's Encrypt の証明書リクエストで指定された値を [サブドメイン] フィールドと [Responds with (応答)] フィールドに入力します。

    Lightsail DNS ゾーンエディタの TXT レコード。
  6. 保存アイコンを選択します。

  7. ステップ 3~6 を繰り返して、Let's Encrypt の証明書リクエストで指定された 2 番目の TXT レコードのセットを追加します。

  8. Lightsail コンソールのブラウザウィンドウは開いたままにします。このチュートリアルで後ほど戻ります。このチュートリアルの次のセクションに進みます。

ステップ 5: TXT レコードが伝播されたことを確認する

MxToolbox ユーティリティを使用して、TXT レコードがインターネットの DNS に伝播されたことを確認します。DNS レコードの伝播には、DNS ホスティングプロバイダーと DNS レコードの有効期限 (TTL) の設定に応じて時間がかかる場合があります。このステップを完了し、TXT レコードが伝播されたことを確認した上で、Certbot 証明書のリクエストに進むことが重要です。そうしないと、証明書のリクエストは失敗します。

    TXT レコードがインターネットの DNS に伝播されたことを確認するには

  1. 新しいブラウザウィンドウを開き、https://mxtoolbox.com/TXTLookup.aspx. に移動します。

  2. 次の内容をテキストボックスに入力します。domain は実際のドメインに置き換えてください。

    _acme-challenge.domain

    例:

    _acme-challenge.example.com
    MXTookbox TXT レコードルックアップ。
  3. [TXT Lookup] を選択して、チェックを実行します。

  4. 以下のいずれかのレスポンスが返されます。

    • TXT レコードがインターネットの DNS に伝播された場合は、次のスクリーンショットに示すようなレスポンスが表示されます。ブラウザウィンドウを閉じて、このチュートリアルの次のセクションに進みます。

      TXT レコードが伝播されたことの確認。
    • TXT レコードがインターネットの DNS に伝播されていない場合は、[DNS レコードが見つかりません] というレスポンスが表示されます。適切な DNS レコードをドメインの DNS ゾーンに追加したことを確認してください。適切なレコードを追加した場合は、ドメインの DNS レコードが伝播されるまでしばらく待ってから、TXT のルックアップを再実行します。

ステップ 6: Let's Encrypt の SSL 証明書リクエストを完了する

Lightsail インスタンスのWordPressブラウザベースの SSH セッションに戻り、Let's Encrypt 証明書のリクエストを完了します。Certbot は、SSL 証明書、チェーン、キーファイルをWordPressインスタンスの特定のディレクトリに保存します。

    Let's Encrypt の SSL 証明書リクエストを完了するには

  1. Lightsail インスタンスのWordPressブラウザベースの SSH セッションで、Enter キーを押し、Let's Encrypt の SSL 証明書リクエストを続行します。成功すると、次のスクリーンショットに示すようなレスポンスが表示されます。

    Let's Encrypt 証明書リクエストの成功。

    証明書、チェーン、およびキーファイルが /etc/letsencrypt/live/domain/ ディレクトリに保存されたことを確認するメッセージが表示されます。domain は、実際のドメイン (/etc/letsencrypt/live/example.com/. など) に置き換えてください。

  2. メッセージに指定されている有効期限を書き留めておきます。この期限日までに証明書を更新する必要があります。

    Let's Encrypt 証明書の更新日。
  3. これで Let's Encrypt の SSL 証明書が手に入ったので、このチュートリアルの次のセクションに進みます。

WordPress インスタンスの Apache サーバーディレクトリに Let's Encrypt の SSL 証明書ファイルへのリンクを作成します。また、必要がある場合に備えて、既存の証明書をバックアップします。

    Apache サーバーディレクトリで Let's Encrypt の証明書ファイルへのリンクを作成するには

  1. Lightsail インスタンスのWordPressブラウザベースの SSH セッションで、次のコマンドを入力して基盤となるサービスを停止します。

    sudo /opt/bitnami/ctlscript.sh stop

    次のようなレスポンスが表示されます。

    停止したインスタンスサービス。
  2. 次のコマンドを入力してドメインの環境変数を設定します。コマンドをコピーして貼り付け、より効率的に証明書ファイルをリンクできます。domain は登録済みのドメイン名に置き換えてください。

    DOMAIN=domain

    例:

    DOMAIN=example.com
  3. 次のコマンドを入力し、変数が正しい値を返すことを確認します。

    echo $DOMAIN

    次のような結果が表示されます。

    ドメインの環境変数を確認する。
  4. 既存の証明書ファイルがある場合、バックアップとして以下のコマンドを個別に入力して名前を変更します。

    • Debian Linux ディストリビューションを使用する新しいインスタンスの場合:

      sudo mv /opt/bitnami/apache2/conf/server.crt /opt/bitnami/apache2/conf/server.crt.old
      sudo mv /opt/bitnami/apache2/conf/server.key /opt/bitnami/apache2/conf/server.key.old
      sudo mv /opt/bitnami/apache2/conf/server.csr /opt/bitnami/apache2/conf/server.csr.old
    • Ubuntu Linux ディストリビューションを使用する古いインスタンスの場合:

      sudo mv /opt/bitnami/apache/conf/bitnami/certs/server.crt /opt/bitnami/apache/conf/bitnami/certs/server.crt.old
      sudo mv /opt/bitnami/apache/conf/bitnami/certs/server.key /opt/bitnami/apache/conf/bitnami/certs/server.key.old
      sudo mv /opt/bitnami/apache/conf/bitnami/certs/server.csr /opt/bitnami/apache/conf/bitnami/certs/server.csr.old
  5. 以下のコマンドを個別に入力し、Apache ディレクトリで Let's Encrypt の証明書ファイルへのリンクを作成します。

    • Debian Linux ディストリビューションを使用する新しいインスタンスの場合:

      sudo ln -s /etc/letsencrypt/live/$DOMAIN/privkey.pem /opt/bitnami/apache2/conf/server.key
      sudo ln -s /etc/letsencrypt/live/$DOMAIN/fullchain.pem /opt/bitnami/apache2/conf/server.crt
    • Ubuntu Linux ディストリビューションを使用する古いインスタンスの場合:

      sudo ln -s /etc/letsencrypt/live/$DOMAIN/privkey.pem /opt/bitnami/apache/conf/bitnami/certs/server.key
      sudo ln -s /etc/letsencrypt/live/$DOMAIN/fullchain.pem /opt/bitnami/apache/conf/bitnami/certs/server.crt
  6. 次のコマンドを入力して、以前に停止した基盤となるサービスを開始します。

    sudo /opt/bitnami/ctlscript.sh start

    次のような結果が表示されます。

    開始したインスタンスサービス。

    WordPress インスタンスの SSL 証明書ファイルが適切なディレクトリに配置されました。

  7. このチュートリアルの次のセクションに進みます。

ステップ 8: Really Simple SSL プラグインを使用して SSL 証明書をWordPressサイトに統合する

Really Simple SSL プラグインをWordPressサイトにインストールし、これを使用して SSL 証明書を統合します。Really Simple SSL では、サイトを訪問するユーザーが常に HTTPS 接続を利用できるように、HTTP から HTTPS へのリダイレクトも設定します。

    Really Simple SSL プラグインを使用して SSL 証明書をWordPressサイトに統合するには

  1. Lightsail インスタンスのWordPressブラウザベースの SSH セッションで、次のコマンドを入力して、 wp-config.php および htaccess.conf ファイルを書き込み可能に設定します。Really Simple SSL プラグインは、wp-config.php ファイルに書き込むことで証明書を設定します。

    sudo chmod 666 /opt/bitnami/apps/wordpress/htdocs/wp-config.php && sudo chmod 666 /opt/bitnami/apps/wordpress/conf/htaccess.conf
  2. 新しいブラウザウィンドウを開き、WordPressインスタンスの管理ダッシュボードにサインインします。

    注意

    詳細については、「Amazon Lightsail の "Certified by Bitnami" インスタンスのアプリケーションのユーザー名とパスワードを取得する.」を参照してください。

  3. 左のナビゲーションペインから [Plugins (プラグイン)] を選択します。

  4. [Plugins] ページの上部で、[Add New] を選択します。

    に新しいプラグインを追加しますWordPress。
  5. Really Simple SSL.] を探します。

  6. 検索結果の Really Simple SSL プラグインの横にある [Install Now] を選択します。

    の Really Simple SSL プラグインWordPress。
  7. インストールが完了したら、[Activate (有効化).] を選択します。

  8. 表示されるプロンプトで [Go ahead, activate SSL! (SSL の有効化を開始!)] を選択します。WordPress インスタンスの管理ダッシュボードのサインインページにリダイレクトされる場合があります。

    WordPress これで、インスタンスは SSL 暗号化を使用するように設定されました。さらに、HTTP から HTTPS に自動的に接続をリダイレクトするようにWordPressインスタンスが設定されました。訪問者が http://example.com にアクセスすると、暗号化された HTTPS 接続 (https://example.com).) に自動的にリダイレクトされます。

ステップ 9: Let's Encrypt 証明書を 90 日ごとに更新する

Let's Encrypt 証明書の有効期間は 90 日間です。証明書は有効期限が切れる 30 日前に更新できます。Let's Encrypt 証明書を更新するには、取得するために使用した元のコマンドを実行します。このチュートリアルの「Let's Encrypt の SSL ワイルドカード証明書をリクエストする」セクションのステップを繰り返します。