Amazon Lightsail にワイルドカード Let’s Encrypt 証明書をインストールするには?

最終更新日:2021年10月20日

Amazon Lightsail インスタンスの自分のウェブサイトにワイルドカード SSL 証明書をインストールするには?

簡単な説明

以下の解決方法は、Bitnami スタックを使用していない Lightsail インスタンスでホストされているウェブサイトにワイルドカード Let’s Encrypt 証明書をインストールする方法について説明しています。これらのインスタンスのブループリントの例として、Amazon Linux 2、Ubuntu などがあります。別のインスタンスブループリントを使用している場合、またはスタンダード証明書をインストールする場合は、次のいずれかを参照してください。

スタンダード Let’s Encrypt 証明書

スタンダード Let's Encrypt SSL 証明書(ワイルドカード以外)の Amazon Linux 2、Ubuntu など、Bitnami スタックを使用していない Lightsail インスタンスへのインストールに関する情報については、Lightsail にスタンダード Let’s Encrypt 証明書をインストールする方法を参照してください。

スタンダード Let's Encrypt SSL 証明書(ワイルドカード以外)の WordPress、LAMP、Magento など、Bitnami スタックを使用している Lightsail インスタンスへのインストールに関する情報については、Amazon Lightsail でホストされている Bitnami にスタンダード Let’s Encrypt 証明書をインストールする方法を参照してください。

ワイルドカード Let's Encrypt 証明書 (例:*.example.com)

ワイルドカード Let's Encrypt 証明書の WordPress、Lamp、Magento、MEAN など、Bitnami スタックを使用している Lightsail インスタンスへのインストールに関する情報については、Amazon Lightsail でホストされている Bitnami にワイルドカード Let’s Encrypt 証明書をインストールする方法を参照してください。

解決方法

ワイルドカード Let's Encrypt SSL 証明書を Lightsail インスタンスにインストールするステップは、ドメインが使用している DNS プロバイダーによって異なります。使用する方式を決定するには、DNS プロバイダーが DNS プラグインの Cerbot DNS リストに表示されているかどうかを確認します。次に、使用する適切な方法を選択します。

方法 1: ドメインがリストされている DNS プロバイダーの 1 つを使用している場合は、この方法を使用します。

方法 2: ドメインがリストされている DNS プロバイダーのいずれも使用していない場合は、この方法を使用します。

方法 1

前提条件と制限事項

  • 次のステップで、サーバーへの証明書のインストールについて説明します。証明書を使用するようにウェブサーバーを設定したり、HTTPS リダイレクトを設定したりするなど、追加のステップを手動で完了する必要があります。
  • ドメインは、Certbot DNS リストに記載されている DNS プロバイダーの 1 つを使用している必要があります。

注: この方法では、開始する前に Certbot ツールをインストールする必要があります。インストール手順については、Let's Encrypt インストール用に Certbot パッケージを Lightsail インスタンスにインストールするに方法を参照してください。

次の例で、DNS プロバイダーは Amazon Route 53 です。他のサポートされている DNS プロバイダーの手順については、DNS プラグインを参照してください。

1.    プログラムのアクセス権がある AWS Identify and Access Management (IAM) ユーザーを作成します。Certbot が DNS チャレンジを完了するために添付する必要がある IAM ユーザーの最小のアクセス権については、certbot-dns-route-53 を参照してください。

2.    インスタンスで次のコマンドを実行して、ナノエディタで /root/.aws/credentials ファイルを開きます。

sudo mkdir /root/.aws
sudo nano /root/.aws/credentials

3.    次の行をファイルにコピーします。次に、ctrl+xyEnter キーの順に押してファイルを保存します。

次のコマンドで、aws_access_key_id をステップ 1 で作成したアクセスキー ID に置き換えます。aws_secret_access_key をステップ 1 で作成したシークレットアクセスキーに置き換えます。

[default]
aws_access_key_id = AKIA************E
aws_secret_access_key = 1yop**************************l

4.    サーバーに Let's Encrypt 証明書を作成します。example.com をドメイン名に置き換えます。

ドメインが DNS プロバイダーとして Amazon Route 53 を使用している場合は、次のコマンドを実行します。

sudo certbot certonly --dns-route53 -d example.com -d *.example.com

SSL 証明書が正常に生成されると、「証明書を正常に受信しました」というメッセージが表示されます。証明書とキーファイルの場所も表示されます。これらのファイルの場所は、ステップ 6 で使用するためにメモ帳に保存します。

5.    証明書の自動更新を設定します。

snapd を使用して Certbot パッケージをインストールした場合、更新は systemd タイマーまたは cronjobs で自動的に設定されます。

OS ディストリビューションが Amazon Linux 2 または FreeBSD の場合、Certbot パッケージは snapd を使用してインストールされていません。この場合、次のコマンドを実行して、更新を手動で設定する必要があります。

echo "30 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew" | sudo tee -a /etc/crontab > /dev/null

6.    証明書のインストールと更新の設定のみが完了しました。この証明書を使用するようにウェブサーバーを設定し、HTTPS リダイレクトを設定する必要がまだあります。この設定は様々で、インスタンスのウェブサーバーの設定によって異なります。これらのステップを完了する手順については、ウェブサービスのドキュメントを参照してください。

方法 2

前提条件と制限事項

  • 次のステップで、サーバーへの証明書のインストールについて説明します。証明書を使用するようにウェブサーバーを設定したり、HTTPS リダイレクトを設定したりするなど、追加のステップを手動で完了する必要があります。
  • この方法では、証明書の自動更新はサポートされていません。

注: この方法では、開始する前に Certbot ツールをインストールする必要があります。インストール手順については、Let's Encrypt インストール用に Certbot パッケージを Lightsail インスタンスにインストールするに方法を参照してください。

1.    この方法では、ドメインの DNS プロバイダーに TXT レコードを追加する必要があります。この処理には時間がかかる可能性があるため、セッションがタイムアウトするのを防ぐために Linux GNU Screen でコマンドを実行するのがベストプラクティスです。Screen セッションを開始するには、次のコマンドを入力します。

screen -S letsencrypt

2.    次のコマンドを入力して、Certbot を対話モードで起動します。このコマンドは、ドメインの所有者を確認するために DNS チャレンジでマニュアル認可方法を使用するように Certbot に指示します。example.com をドメイン名に置き換えます。

sudo certbot certonly --manual --preferred-challenges dns -d example.com -d *.example.com

3.    ドメインの DNS レコードに TXT レコードを追加して、指定したドメインを所有していることを検証するためのプロンプトが表示されます。Let's Encrypt は、検証のために使用する必要がある 1 つまたは複数の TXT レコードを提供します。

4.    画面に TXT レコードが表示されたら、まずドメインの DNS で提供されたレコードを追加します。TXT レコードがインターネット DNS に伝達されたことを確認するまで、Enter キーを押さないでください。また、Ctrl+D を押さないでください。現在のスクリーンセッションが終了します。

5.    TXT レコードがインターネット DNS に伝達されたことを確認するには、DNS テキストルックアップで調べます。テキストボックスに次のテキストを入力し、TXT Lookup を選択してチェックします。example.com はご自身のドメイン名に置き換えてください。

_acme-challenge.example.com

6.    TXT レコードがインターネットの DNS に伝達されている場合は、ページに TXT レコードの値が表示されます。画面に戻り、Enter キーを押すことができるようになりました。

注: シェルから削除された場合は、screen-r SESSIONID コマンドを使用して戻ってください。screen-ls コマンドを実行してセッション ID を取得します。

7.    Certbot プロンプトで別の TXT レコードを追加するように求められた場合は、ステップ 4 ~ 7 を再度実行します。

8.    SSL 証明書が正常に生成されると、「証明書を正常に受信しました」というメッセージが表示されます。証明書とキーファイルの場所も表示されます。次のステップで使用するために、これらのファイルの場所をメモ帳に保存します。

9.    証明書のインストールと更新の設定のみが完了しました。この証明書を使用するようにウェブサーバーを設定し、HTTPS リダイレクトを設定する必要がまだあります。この設定は様々で、インスタンスのウェブサーバーの設定によって異なります。これらのステップを完了する手順については、ウェブサービスのドキュメントを参照してください。


この記事は役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?