Amazon Lightsail でホストされている Bitnami スタックにワイルドカード Let's Encrypt SSL 証明書をインストールするには?

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

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

簡単な説明

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

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

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

WordPress、LAMP、Magento など、Bitnami スタックを持つ Lightsail インスタンスにスタンダード Let's Encrypt SSL 証明書 (ワイルドカードではない)をインストールする方法については、 「Amazon Lightsail でホストされている Bitnami スタックにスタンダード Let's Encrypt SSL 証明書をインストールするには?」を参照してください。

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

Amazon Linux 2、Ubuntu など、 Bitnami スタックを使用しない Lightsail インスタンスにワイルドカード Let's Encrypt 証明書をインストールする方法については、「Amazon Lightsail でワイルドカードLet's Encrypt SSL をインストールするには? 」を参照してください。

解決方法

ワイルドカード Let's Encrypt SSL 証明書を Bitnami でホストされている Lightsail インスタンスにインストールするステップは、ドメインが使用している DNS プロバイダーによって異なります。使用するメソッドを決定するには、ご使用の DNS プロバイダーが、レゴのドキュメントの DNS プロバイダーに記載されているかどうかを確認します。次に、使用する適切な方法を選択します。

方法 1: ドメインがリストされている DNS プロバイダーのいずれかを使用している場合は、Bitnami が提供するレゴツールを使用します。

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

注: この記事のファイルパスは、Bitnami スタックがネイティブ Linux システムパッケージを使用しているか (アプローチ A)、または自己完結型インストール (アプローチ B) であるかによって変わります。Bitnami のインストールタイプを識別するには、次のコマンドを実行します。

test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A: Using system packages." || echo "Approach B: Self-contained installation."

方法 1

bncert-tool と並んで、Bitnami スタックはレゴツールを提供します。このツールはワイルドカード SSL 証明書の作成をサポートしますが、bncert-tool はサポートしていません。

前提条件と制限事項

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

注: 次の例で、DNS プロバイダーは Amazon Route 53 または Amazon Lightsail です。他のサポートされている DNS プロバイダーの手順については、レゴのドキュメントの DNS プロバイダーを参照してください。

1.    プログラムによるアクセス権を持つ AWS Identity and Access Management (IAM) ユーザーを作成します。Lego が DNS チャレンジを完了するために添付する必要がある IAM ユーザーの最小のアクセス権については、レゴのドキュメントのポリシーを参照してください。

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.    お使いの Bitnami インスタンスに /opt/bitnami/letsencrypt/ ディレクトリが含まれていない場合は、以下のコマンドを使用して、レゴクライアントを手動でインストールできます。

cd /tmp
curl -Ls https://api.github.com/repos/xenolf/lego/releases/latest | grep browser_download_url | grep linux_amd64 | cut -d '"' -f 4 | wget -i - -O lego.tar.gz
tar xf lego.tar.gz
sudo mkdir -p /opt/bitnami/letsencrypt
sudo mv lego /opt/bitnami/letsencrypt/lego

5.    サーバーに Let's Encrypt 証明書を作成します。EMAIL-ADDRESS は、証明書に関する最新情報を受け取る電子メールアドレスに置き換えます。DOMAIN をドメイン名に置き換えます。

Route 53 ネームサーバー

sudo /opt/bitnami/letsencrypt/lego --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains="*.DOMAIN" --dns route53 --path="/opt/bitnami/letsencrypt" run

Lightsail ネームサーバー

sudo /opt/bitnami/letsencrypt/lego --email="EMAIL-ADDRESS" --domains="DOMAIN" --domains"*.DOMAIN" --dns lightsail --path="/opt/bitnami/letsencrypt" run

SSL 証明書が正常に生成されると、「サーバーが証明書に応答しました」というメッセージが表示されます。SSL 証明書とプライベートキーは、次の場所に生成されます。

/opt/bitnami/letsEncrypt/Certificates/domain.crt

/opt/bitnami/letsencrypt/certificates/DOMAIN.key

6.    SSL 証明書と証明書キーファイルを、Web サーバーが現在読み取っている場所にリンクします。

アプローチ A の下のアパッチ

以下のコマンド例では、DOMAIN プレースホルダーをドメイン名に置き換えます。

sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.crt /opt/bitnami/apache2/conf/bitnami/certs/server.crt.old
sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.key /opt/bitnami/apache2/conf/bitnami/certs/server.key.old
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/apache2/conf/bitnami/certs/server.key
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/apache2/conf/bitnami/certs/server.crt
sudo /opt/bitnami/ctlscript.sh restart apache

アプローチ B の下のアパッチ

以下のコマンド例では、DOMAIN プレースホルダーをドメイン名に置き換えます。

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
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/apache2/conf/server.key
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/apache2/conf/server.crt
sudo /opt/bitnami/ctlscript.sh restart apache

アプローチ A の下のNGINX

以下のコマンド例では、DOMAIN プレースホルダーをドメイン名に置き換えます。

sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt.old
sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.key /opt/bitnami/nginx/conf/bitnami/certs/server.key.old
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/nginx/conf/bitnami/certs/server.key
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt
sudo /opt/bitnami/ctlscript.sh restart nginx

アプローチ B の下の NGINX

以下のコマンド例では、DOMAIN プレースホルダーをドメイン名に置き換えます。

sudo mv /opt/bitnami/nginx/conf/server.crt /opt/bitnami/nginx/conf/server.crt.old
sudo mv /opt/bitnami/nginx/conf/server.key /opt/bitnami/nginx/conf/server.key.old
sudo mv /opt/bitnami/nginx/conf/server.csr /opt/bitnami/nginx/conf/server.csr.old
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.key /opt/bitnami/nginx/conf/server.key
sudo ln -sf /opt/bitnami/letsencrypt/certificates/DOMAIN.crt /opt/bitnami/nginx/conf/server.crt
sudo /opt/bitnami/ctlscript.sh restart nginx

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

Let's Encrypt 証明書は 90 日間有効です。証明書の更新を自動化して、証明書の有効期限が切れる前に自動的に更新されるようにするには、次の手順を実行します。

次のコマンドを実行して crontab エディタを開きます。

sudo crontab -e -u bitnami

次の行を crontab ファイルに追加し、ファイルを保存します。EMAIL-ADDRESS はメールアドレス、DOMAIN はドメイン名、DNS はネームサーバープロバイダー名 (Route 53、Lightsail など) に置き換えます。

0 0 * * * sudo /opt/bitnami/letsencrypt/lego --path /opt/bitnami/letsencrypt --email="EMAIL-ADDRESS" --domains="DOMAIN"  --domains="*.DOMAIN" --dns DNS renew >> /var/log/letsencrypt.log 2>&1 && sudo /opt/bitnami/apache/bin/httpd -f /opt/bitnami/apache/conf/httpd.conf -k graceful

8.    HTTPS リダイレクションを設定します。詳細については、Bitnami の Web サイトで次の情報を参照してください。

方法 2

前提条件と制限事項

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

注: 次のステップを開始する前に、Certbot をインストールしてください。インストール手順については、「Let's Encrypt 証明書のインストール用に Certbot パッケージを Lightsail インスタンスにインストールするにはどうすればよいですか」を参照してください。

Bitnami がホストするインスタンスの場合、Linux ディストリビューションは Debian または Ubuntu のいずれかです。次のコマンドを実行して、お持ちの Linux ディストリビューションを確認します。

cat /etc/os-release | grep -i ^id

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 キーを押すことができるようになりました。

7.    シェルから削除された場合は、screen -r SESSIONID コマンドを使用して戻ることができます。screen-ls コマンドを実行してセッション ID を取得します。

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

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

10.    証明書のインストールと更新のセットアップだけが完了します。この証明書を使用するように Web サーバーを構成し、HTTPS リダイレクトを設定する必要があります。次のいずれかのコマンドセットを使用して、証明書を使用するように Web サーバーを設定します。

アプローチ A の下のアパッチ

以下のコマンド例では、DOMAIN プレースホルダーをドメイン名に置き換えます。

sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.crt /opt/bitnami/apache2/conf/bitnami/certs/server.crt.old
sudo mv /opt/bitnami/apache2/conf/bitnami/certs/server.key /opt/bitnami/apache2/conf/bitnami/certs/server.key.old
sudo ln -sf /etc/letsencrypt/live/DOMAIN/privkey.pem /opt/bitnami/apache2/conf/bitnami/certs/server.key
sudo ln -sf /etc/letsencrypt/live/DOMAIN/fullchain.pem /opt/bitnami/apache2/conf/bitnami/certs/server.crt
sudo /opt/bitnami/ctlscript.sh restart apache

アプローチ B の下のアパッチ

以下のコマンド例では、DOMAIN プレースホルダーをドメイン名に置き換えます。

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 ln -sf /etc/letsencrypt/live/DOMAIN/privkey.pem /opt/bitnami/apache2/conf/server.key
sudo ln -sf /etc/letsencrypt/live/DOMAIN/fullchain.pem /opt/bitnami/apache2/conf/server.crt
sudo /opt/bitnami/ctlscript.sh restart apache

アプローチ A の下のNGINX

以下のコマンド例では、DOMAIN プレースホルダーをドメイン名に置き換えます。

sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.crt /opt/bitnami/nginx/conf/bitnami/certs/server.crt.old
sudo mv /opt/bitnami/nginx/conf/bitnami/certs/server.key /opt/bitnami/nginx/conf/bitnami/certs/server.key.old
sudo ln -sf /etc/letsencrypt/live/DOMAIN/privkey.pem /opt/bitnami/nginx/conf/bitnami/certs/server.key
sudo ln -sf /etc/letsencrypt/live/DOMAIN/fullchain.pem /opt/bitnami/nginx/conf/bitnami/certs/server.crt
sudo /opt/bitnami/ctlscript.sh restart nginx

アプローチ B の下の NGINX

以下のコマンド例では、DOMAIN プレースホルダーをドメイン名に置き換えます。

sudo mv /opt/bitnami/nginx/conf/server.crt /opt/bitnami/nginx/conf/server.crt.old
sudo mv /opt/bitnami/nginx/conf/server.key /opt/bitnami/nginx/conf/server.key.old
sudo ln -sf /etc/letsencrypt/live/DOMAIN/privkey.pem /opt/bitnami/nginx/conf/server.key
sudo ln -sf /etc/letsencrypt/live/DOMAIN/fullchain.pem /opt/bitnami/nginx/conf/server.crt
sudo /opt/bitnami/ctlscript.sh restart nginx

8.    HTTPS リダイレクションを設定します。詳細については、Bitnami の Web サイトで次の情報を参照してください。


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


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