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

所要時間5分
0

Bitnami スタックがある Amazon Lightsail インスタンスに自分のウェブサイト用のワイルドカード SSL 証明書をインストールしたいと考えています。

簡単な説明

別のインスタンスブループリントまたは標準証明書をインストールする方法については、次の AWS ナレッジセンター記事を参照してください。

解決策

Bitnami がホストする Lightsail インスタンスにワイルドカードの Let's Encrypt SSL 証明書をインストールする手順は、ドメインが使用する DNS プロバイダーによって異なります。お使いの DNS プロバイダーが Lego ウェブサイトの DNS プロバイダーの一覧に表示されているかどうかを確認してください。次に、使用する適切な方法を選択します。

  • ドメインがリストされている DNS プロバイダーのいずれかを使用している場合は、Bitnami が提供する Lego ツールを使用してください。
  • ご利用のドメインがリストに記載されている DNS プロバイダーのいずれも使用していない場合は、Certbot パッケージを使用してください。

注: ファイルパスは、Bitnami スタックがネイティブ Linux システムパッケージ (アプローチ A) を使用するか、自己完結型インストール (アプローチ B) を使用するかによって異なります。最新の Bitnami WordPress ブループリントは、アプローチ A でのみ利用できます。

Bitnami のインストールタイプを確認するには、次のコマンドを実行します。

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

Lego tool

Bitnamiは bncert-tool と Lego ツールを提供しています。Lego ツールはワイルドカード SSL 証明書の作成をサポートしています。bncert-tool はワイルドカード SSL 証明書の作成をサポートしていません。

注: 次の例では、DNS プロバイダーは Amazon Route 53 と Amazon Lightsail です。

Lego ツールを使用してワイルドカードの Let's Encrypt SSL 証明書をインストールするには、次の手順を実行します。

  1. プログラムによるアクセス権を持つ AWS Identity and Access Management (IAM) ユーザーを作成します。Lego が DNS チャレンジを完了するために必要な IAM ユーザー権限を決定するには、Lego ウェブサイトの ](https://go-acme.github.io/lego/dns/route53/#iam-policy-examples)IAM ポリシーの例[を参照してください。

  2. nano エディターで /root/.aws/credentials ファイルを開くには、次のコマンドを実行します。

    sudo mkdir /root/.aws
    sudo nano /root/.aws/credentials
  3. 認証情報ファイルに次の行を入力します。

    [default]
    aws_access_key_id = AKIA************E
    aws_secret_access_key = 1yop**************************l
    region = us-east-1

    注: aws_access_key_idaws_secret_access_key は該当する値に置き換えてください。us-east-1 は Lightsail インスタンスの AWS リージョンに置き換えてください。

  4. ファイルを保存するには、Ctrl キー+X を押し、次に y を押し、Enter キーを押します。

  5. Bitnami インスタンスに /opt/bitnami/letsencrypt/ ディレクトリが含まれていない場合は、次のコマンドを実行して Lego クライアントを手動でインストールします。

    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 xzf lego.tar.gz
    sudo mkdir -p /opt/bitnami/letsencrypt
    sudo mv lego /opt/bitnami/letsencrypt/lego
  6. ワイルドカードの Let's Encrypt 証明書をサーバー内に作成するには、サーバーの種類に応じて次のコマンドを実行します。
    Route 53 ネームサーバー:

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

    Lightsail ネームサーバー:

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

    注: EMAIL-ADDRESS は、証明書の更新を受け取るメールアドレスに置き換えてください。DOMAIN は、自分のドメインに置き換えてください。
    SSL 証明書とプライベートキーは次の場所で生成されます: /opt/bitnami/letsencrypt/certificates/DOMAIN.crt または /opt/bitnami/letsencrypt/certificates/DOMAIN.key

  7. Bitnami スタックサービスを停止するには、次のコマンドを実行します。

    sudo /opt/bitnami/ctlscript.sh stop
  8. サーバーとアプローチに基づいて、SSL 証明書と証明書キーファイルを、ウェブサーバーが現在読み取っている場所にリンクします。
    Apache、アプローチ A

    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

    Apache、アプローチ B

    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

    NGINX、アプローチ A

    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

    NGINX、アプローチ B

    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

    注: 前述のコマンドでは、DOMAIN は使用するドメイン名に置き換えてください。

  9. Bitnami スタックサービスを開始するには、次のコマンドを実行します。

    sudo /opt/bitnami/ctlscript.sh start
  10. 証明書の更新を自動化するには、次のコマンドを実行して crontab エディタを開きます。

sudo crontab -e -u bitnami

注: Let's Encrypt 証明書の有効期限は 90 日間です。 crontab ファイルに次の行を入力し、ファイルを保存します。
Apache

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

Nginx

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/nginx/sbin/nginx -c /opt/bitnami/nginx/conf/nginx.conf -s reload

注: EMAIL-ADDRESSDOMAINDNS は該当する値に置き換えてください。 HTTPS リダイレクトを設定します。詳細については、Bitnami ウェブサイトの「Force HTTPS redirection with Apache」および「Force HTTPS redirection with NGINX」を参照してください。

Certbot パッケージ

前提条件:

  • Certbot をインストールします。
  • お使いの Linux ディストリビューションを確認してください。Bitnami がホストするインスタンスの場合、Linux ディストリビューションは Debian または Ubuntu のいずれかです。次のコマンドを実行して Linux ディストリビューションを確認します。
    cat /etc/os-release | grep -i ^id
    注: この方法では、証明書の自動更新はサポートされていません。

Certbot パッケージを使用してワイルドカードの Let's Encrypt SSL 証明書をインストールするには、次の手順を実行します。

  1. Linux GNU screen セッションを開始します。ドメインの DNS プロバイダーに TXT レコードを追加するには時間がかかるため、セッションがタイムアウトする可能性があります。セッションがタイムアウトしないように、Linux GNU Screen でコマンドを実行するのがベストプラクティスです。screen セッションを開始するには、次のコマンドを実行します。

    screen -S letsencrypt
  2. Certbot インタラクティブモードを開始するには、以下のコマンドを実行します。

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

    注: example.com は該当する値に置き換えてください。
    「bash: certbot: command not found」などのエラー応答を受け取った場合は、PATH 環境変数に /bin/snap を追加する必要がある場合があります。まず、「exit」と入力して Enter キーを押します。または、Ctrl+D を押して screen セッションを終了します。次に、/etc/environment を編集し、リストに /snap/bin を追加します。システムを再起動します。エラーが解消されたことを確認するには、次のコマンドを実行します。

    $ certbot -h
  3. Let's Encrypt が提供する TXT レコードをコピーします。Let's Encrypt は、検証に使用する必要がある 1 つまたは複数の TXT レコードを提供します。

  4. 提供されたレコードをドメインの DNS に追加します。
    重要: TXT レコードがインターネット DNS に伝達されたことを確認するまで Enter キーを押さないでください。また、Ctrl+D を押さないでください。この操作を行うと screen セッションが終了します。

  5. レコードが伝達されたことを確認するには、MXToolbox ウェブサイトの DNS テキスト検索で TXT レコードを検索してください。

    _acme-challenge.example.com

    注: example.com は該当する値に置き換えてください。
    TXT レコードが反映されると、ページに TXT レコードの値が表示されます。前の画面に戻り、Enter キーを押します。

  6. シェルから削除された場合は、次のコマンドを実行してシェルに戻ります。

    Screen -r SESSIONID

    注: screen -ls コマンドを実行してセッション ID を取得します。

  7. (オプション) メッセージが表示されたら、前の手順を繰り返して別の TXT レコードを追加します。
    注: DNS プロバイダーに Route 53 を使用している場合は、1 行に 1 つの TXT 値を入力します。TXT レコードを編集し、新しい行に certbot が提供する TXT 値を追加します。

  8. SSL 証明書とキーファイルの場所を保存します。SSL 証明書が生成されると、「Successfully received certificate」というメッセージが表示されます。

  9. 証明書を使用するようにウェブサーバーを設定するには、サーバーとアプローチに基づいて次のコマンドを実行します。
    Apache、アプローチ A

    sudo /opt/bitnami/ctlscript.sh stop
    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 start

    Apache、アプローチ B

    sudo /opt/bitnami/ctlscript.sh stop
    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 start

    NGINX、アプローチ A

    sudo /opt/bitnami/ctlscript.sh stop
    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 start

    NGINX、アプローチ B

    sudo /opt/bitnami/ctlscript.sh stop
    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 start

    注: 前述のコマンドでは、DOMAIN は使用するドメイン名に置き換えてください。

  10. HTTPS リダイレクトを設定します。詳細については、Bitnami ウェブサイトの「Force HTTPS redirection with Apache」および「Force HTTPS redirection with NGINX」を参照してください。

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ