MENU

SSL証明書の設定・bitnami/Amazon Lightsail

Let's Encrypt-on-aws-lightsail
目次

はじめに

Let’s Encrypt SSL 証明書が間もなく失効してします(3月29日に失効)。自動更新を設定していたのですが「マニュアルで更新してください」となっていました。焦って調べたのですが、どうもワイルドカード証明書関連でうまく行っていない感じです。DNSが絡むので、私のスキルでは証明書の期限切れに間に合いそうにありません(涙。
certbotでの更新を設定していたのですが、素直に「Bitnami HTTPS 構成ツール」に切り替えました。

事前の準備

ネットワークエンジニアの経験が足りなくて、サイトの運用を止めてしまいそうでとても怖いです。自力で直せなかったらどうしようかと考えると、どうしてもメンテナンスができませんでした。
ですが、期限が残り2週を切ってしまったので、そうも言ってられません。改めて現状の確認と今後の設定についての事前検討を行いました。

Bitmaniについて

まず、SSL証明書の見直しです。まだまだコストをかけるには遠いので、SSL証明書はできれば無償としておきたいです。引き続きLet’s Encryptを活用させていただきます。幸い、本サイトが稼働するLightsailインスタンスにはBitnamiが導入済みです。Bitnami HTTPS 構成ツールを使って簡単にLet’s Encryptを使ったSSL証明書が導入できそうです。

初期の立ち上げ時にBitnamiについてもう少し踏み込んで調べておけば、こんな手間は不要だったと思います。ですが、対策を調べることで知見も蓄積できますし、うまくいけば全て「ヨシ!」ですよね。

関連記事も含め読み込んでいくと、ワイルドカード対応のSSL証明書は手作業でしか作れない様です。この辺が自動更新出来なかった問題につながっていたと思いました。
また、サーバーがIPv6に対応していた場合も手動設定でしかできない様ですね。

Bitnami HTPS 構成ツール

基本的には画面に従って答えていくだけで完了しました。
念の為、事前に最新のバージョンを導入してから実行しました。

Bitnamiの環境

AWS LightsailのWordPressはBitnamiで構築されています。一般的なWordPressとはパス情報が少し違います。記事を起こしましたので設定の参考にしてください。。

IPv6ネットワーキングを無効にする

年始のOCN導入の際にIPv6を有効にしていた様…確認したところやっぱり有効にしていました。あぶない、あぶない。早速無効にしておきます。Lightsailのダッシュボードから「ネットワーキング」タブを経由して設定します。

Lightsail IPv6設定のOff
図 1. Lightsail・ネットワーキング

IPv6の設定もチャレンジしたいですね。移行も進むでしょうし、役立つ知識になりそうです。

 Amazon Route 53 の設定確認

Bitnami HTTPS 構成ツールではワイルドカード対応のSSL証明書は作れなさそうです。ですから今回の証明書は”www.to-digitalarts.net”で作成する必要があります。SSL証明書の更新に備えて Amazon Route 53の設定を確認しておきます。

レコード名タイプ補足説明
to-digitalarts.netNSドメイン名に対してDNSサービスを提供するサーバー
to-digitalarts.netSOA  管理者のメールアドレス、リフレッシュサーバーの時間枠、ドメインの更新履歴など、重要な情報を含むDNSレコード
to-digitalarts.netTXTgoogleのサイト認証情報
_acme-challenge.to-digitalarts.netTXTLet’sEncriptドメイン認証情報(手動設定のために登録→廃棄予定)
www.to-digitalarts.netAホスト名をIPアドレスに変換
表 1. Route 53の設定情報

事前準備は以上です。早速SSL証明書を更新しましょう。

SSL証明書の更新

早速ログインします。

% ssh to-digitalarts.net                       
Linux ip-172-26-5-16 5.10.0-21-cloud-amd64 #1 SMP Debian 5.10.162-1 (2023-01-21)
 x86_64 

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
       ___ _ _                   _
      | _ |_) |_ _ _  __ _ _ __ (_)
      | _ \ |  _| ' \/ _` | '  \| |
      |___/_|\__|_|_|\__,_|_|_|_|_|
  
  *** Welcome to the WordPress packaged by Bitnami 6.0.2-1         ***
  *** Documentation:  https://docs.bitnami.com/aws/apps/wordpress/ ***
  ***                 https://docs.bitnami.com/aws/                ***
  *** Bitnami Forums: https://github.com/bitnami/vms/              ***
Last login: Sat Mar 18 04:58:17 2023 from xxx.xxx.xxx.xxx
$

Bitnamiのロゴが表示されています。問題なくBitnami HTTPS 構成ツールが使えそうです。早速、実行します。

$ sudo /opt/bitnami/bncert-tool
----------------------------------------------------------------------------
Welcome to the Bitnami HTTPS Configuration tool.

----------------------------------------------------------------------------
Domains
Please provide a valid space-separated list of domains for which you wish to 
configure your web server.

Domain list []: www.to-digitalarts.net

The following domains were not included: to-digitalarts.net. Do you want to
 add them? [Y/n]: N 

Warning: No www domains (e.g. www.example.com) or non-www domains (e.g. 
www.example.com) have been provided, so the following redirections will be 
disabled: non-www to www, www to non-www.
Press [Enter] to continue:
----------------------------------------------------------------------------
Enable/disable redirections

Please select the redirections you wish to enable or disable on your Bitnami 
installation.

Enable HTTP to HTTPS redirection [Y/n]: Y

----------------------------------------------------------------------------
Changes to perform

The following changes will be performed to your Bitnami installation:

1. Stop web server
2. Configure web server to use a free Let's Encrypt certificate for the domains:
 www.to-digitalarts.net
3. Configure a cron job to automatically renew the certificate each month
4. Configure web server name to: www.to-digitalarts.net
5. Enable HTTP to HTTPS redirection (example: redirect https://to-digitalarts.net
 to https://to-digitalarts.net)
6. Start web server once all changes have been performed

Do you agree to these changes? [Y/n]: Y

----------------------------------------------------------------------------
Create a free HTTPS certificate with Let's Encrypt

Please provide a valid e-mail address for which to associate your Let's Encrypt 
certificate.

Domain list: www.to-digitalarts.net
Server name: www.to-digitalarts.net
E-mail address []: who@where.com
The Let's Encrypt Subscriber Agreement can be found at:

https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf

Do you agree to the Let's Encrypt Subscriber Agreement? [Y/n]: Y

----------------------------------------------------------------------------
Performing changes to your installation

The Bitnami HTTPS Configuration Tool will perform any necessary actions to your 
Bitnami installation. This may take some time, please be patient.

----------------------------------------------------------------------------
Success

The Bitnami HTTPS Configuration Tool succeeded in modifying your installation.
The configuration report is shown below.

Backup files:
* /opt/bitnami/apache/conf/httpd.conf.back.202303190706
* /opt/bitnami/apache/conf/bitnami/bitnami.conf.back.202303190706
* /opt/bitnami/apache/conf/bitnami/bitnami-ssl.conf.back.202303190706
* /opt/bitnami/apache/conf/vhosts/wordpress-https-vhost.conf.back.202303190706
* /opt/bitnami/apache/conf/vhosts/wordpress-vhost.conf.back.202303190706

Find more details in the log file:

/tmp/bncert-202303190706.log

If you find any issues, please check Bitnami Support forums at:

https://github.com/bitnami/vms

Press [Enter] to continue:

うまくSSL証明書が導入できた様です。システムを再起動してSSL証明書が更新された事を確認しましょう。
ちゃんと更新できていました、よかったです。

更新結果の確認
図2. SSL証明書の更新を確認

自動更新の設定を確認

更新もツールが自動で設定してくれているとのです。念の為確認してみます。

$ sudo crontab -e -u bitnami

ちゃんと設定されていました。次回更新までしばらく観測してみます。

0 0 * * * sudo /opt/bitnami/letsencrypt/lego --path /opt/bitnami/letsencrypt --email="Mail@Address" --http --http-timeout 30 --http.webroot /opt/bitnami/apps/letsencrypt --domains=www.to-digitalarts.net --user-agent bitnami-bncert/1.1.1 renew && sudo /opt/bitnami/apache/bin/httpd -f /opt/bitnami/apache/conf/httpd.conf -k graceful # bncert-autorenew

自動更新もうまく動作していました(2023/6/12)

すっかり忘れてましたが、そろそろ自動更新の時期なので更新状況を確認しました。次の有効期限は8月15日になっていました、バッチリ更新しています。

自動更新もうまく動作していました(2023/11/10)(2024/4/30)

自動更新を確認しました。自動更新はバッチリ安定運転ですね、問題なしです。

まとめ

事前に下調べしたおかげで比較的簡単にSSL証明書の更新ができました。次は2023年6月17日に失効の予定です。なんとか失効前に更新出来てよかったです。
SSL接続が必須となった現在、この様な優秀なサービスを提供してもらえている事に感謝いたします。
自動更新の結果もまた報告いたします。

AKI視点でのコメント

Let’sEncriptで作成した証明書のライフサイクルは3カ月に設定されています。これは、ユーザーの与信が確保できないため、証明書のライフサイクルを早める事でセキュリティの維持を行う施策です。犯罪者視点からだと、定期的に更新する事で追跡リスクを追わされます。利用者視点では証明書コストを更新の手間で支払えます。ユーザー与信が主体の運用を大きく変える賢い解決策だと思います。
しかしながら、大量に短期間の更新が必須となってしまう事が、新たなリスクを含んでいると考えています。また、ユーザーの与信についても掘り下げが必要です。そういった視点で、AKIの「情報認証による唯一性」と「公開しない非対称鍵」の特性は、新たな可能性があります。
引き続き、AKIのユースケースを記事として発信してまいります。ご興味を持っていただければ幸いです。

Really Simple SSLプラグインでSSL証明書を導入

余談ですが、Really Simple SSLプラグインからもLet’s Encriptの導入設定ができる様です。コンソールが苦手な方にはこちらでSSL証明書を導入するのも良いかもしれません。使用していないので後書きでの簡単なご紹介としました。

Really Simple SSL Let's Encript
Let's Encrypt-on-aws-lightsail

この記事が気に入ったら
いいね または フォローしてね!

よかったらシェアしてね!

コメント

コメントする

目次