AWS Lightsail の Let’s Encrypt の SSL証明書を更新する方法について、過去エントリの整理版
更新期限の確認
まずSSL証明書の更新期限を確認する
- %sudo openssl x509 -noout -dates -in /opt/bitnami/apache2/conf/domain.net.crt
notBefore=Dec 16 16:05:37 2024 GMT
notAfter=Mar 16 16:05:36 2025 GMT →切れている - %openssl s_client -connect domain.net:443 < /dev/null 2> /dev/null | openssl x509 -text | grep "Not"
Not Before: Dec 16 16:05:37 2024 GMT
Not After : Mar 16 16:05:36 2025 GMT →切れている
Cloudflareの設定変更
次に、bncert-toolがIP取得でコケないようにCloudflareの設定変更する
- SSL証明書更新対象のドメイン及びサブドメインのA (ipv4)及びAAAA(ipv6)のProxy statusを一時的にoff (ProxiedからDNS onlyへ変更)にする
- Proxiedだと更新ツールがIPを正常取得できずinstallでコケる
An error occurred renewing certificates with Let's Encrypt:
2024/03/07 01:58:45 error: one or more domains had a problem:
[simisin.net] acme: error: 403 :: urn:ietf:params:acme:error:unauthorized ::
Cannot negotiate ALPN protocol "acme-tls/1" for tls-alpn-01 challenge
- Proxiedだと更新ツールがIPを正常取得できずinstallでコケる
bncert-toolを実行する
- bitnamiでbncert-toolを実行する
- $sudo /opt/bitnami/bncert-tool
- 設定
- Domain list []:
- サブドメインも並列で記載する(例: domain.com blog.domain.com sub.domain.com など)
- ワイルドカード(*)には非対応
Warning: A certificate for the list of domains you entered already exists. It will be used instead of generating a new one.
Press [Enter] to continue:- 既存の証明書を上書きして続行する
- Enable HTTP to HTTPS redirection [Y/n]: Y
- E-mail address []:
- 証明書期限切れ通知が来た連絡用メールアドレスを入力 (contact@~など)
- Domain list []:
- apacheのconfigが正しい証明書を参照しているか確認
- ミスってると下記のエラーログがでる
- $sudo tail -f /opt/bitnami/apache2/logs/error_log
- AH01909: simisin.net:443:0 server certificate does NOT include an ID which matches the server name
- $sudo vi /opt/bitnami/apache2/conf/vhosts/simisin-https-vhost.conf
- SSLCertidicateFile "/opt/bitnami/apache2/conf/simisin.net.crt"
- SSLCertidicateFile "/opt/bitnami/apache2/conf/simisin.net.key"
- $sudo tail -f /opt/bitnami/apache2/logs/error_log
- ミスってると下記のエラーログがでる
- 作業が終わったら、Cloudflare Proxy = on (Proxied)へ戻して終わり
今後の宿題
- IPv6対応(validation & DNS checkをスキップ)方法 ~Cloudflare設定変更不要にできるか?
$sudo /opt/bitnami/bncert-tool --perform_public_ip_validation 0 --perform_dns_validation 0
- SSL証明書管理含めて、bitnamiが死ぬならCloudflareに丸ごと移行しちゃってもいいかも
- 静的サイトはCloudflare Pagesへ
- そもそものbncert-toolの自動更新コケるのなんとかならないか?
- 同居していた静的なVhostsサイト x2 を Cloudflare Pagesx Githubに移行して、1ドメインだけにしたところ普通に自動更新の設定が通りました。Cloudflare PagesはSSLも自動設定
- AWS Bitnami migrationへの対応
- Amazon Lightsail ブループリントの品質、セキュリティ、信頼性を向上させるための継続的な取り組みの一環として、WordPress、WordPress Multisite、LAMP、Nginx、Node.js、Joomla、Magento、MEAN、Drupal、GitLab、Redmine、Ghost、Django、PrestaShop を含む、Bitnami がパッケージ化したブループリントを段階的に廃止します。
- 既存のインスタンスは中断なく稼働し続けますが、 2026 年 5 月 19 日以降、前述のブループリントには更新やパッチが適用されなくなります。この日付以降もこれらのブループリントを使用して新しいインスタンスを作成できますが、2026 年 5 月 19 日時点の最新アップデートのみが含まれます。 2026 年 11 月 19 日以降、Lightsail コンソールまたは API を通じて Bitnami がパッケージ化した WordPress、WordPress Multisite、LAMP、Nginx、または Node.js ブループリントを使用して新しいインスタンスを作成することはできなくなります。
- 2027 年 5 月 19 日以降、Lightsail コンソールまたは API を通じて Joomla、Magento、MEAN、Drupal、GitLab、Redmine、Ghost、Django、または PrestaShop ブループリントを使用して新しいインスタンスを作成することはできなくなります。 Bitnami が提供する WordPress、WordPress Multisite、LAMP、Nginx、または Node.js ブループリントを使用しているお客様は、新しいインスタンスを作成する際に同等の Lightsail ブループリントを使用することをお勧めします。これにより、最新バージョンをご利用いただけます。
- Bitnami ブループリントを使用する既存のインスタンスを Lightsail ブループリントに移行する方法の詳細については、Lightsail のドキュメントを参照してください [1] 。
- Bitnami が提供する Joomla、Magento、MEAN、Drupal、GitLab、Redmine、Ghost、Django、または PrestaShop のブループリントを使用しているお客様は、AWS パートナーが販売する代替の AWS Marketplace 製品を Amazon EC2 でご利用いただけます。AWS Marketplace イメージは通常、標準の EC2 インスタンスコストに加えて追加のソフトウェアコストが発生することに注意してください。
- Bitnami ブループリントを引き続き使用する予定がある場合は、Lightsail のドキュメントを参照して、既存のインスタンスからスナップショットを作成して最新の状態に保つ方法の詳細を確認してください [2] 。 この移行中に質問がある場合やサポートが必要な場合は、AWS Support [3] にお問い合わせください。