0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS】LightsailでSSL期限切れ&bncert-toolがバグで落ちた時の手動リカバリ手順

0
Last updated at Posted at 2026-06-13

1. はじめに

以前、AWS Lightsail + WordPress でポートフォリオを構築し、セキュリティ強化までの手順を記事にまとめました。
https://qiita.com/kawakami0429/items/ebabccdfc1fe2aa15693

しかしある日突然、サイトが 「接続がプライベートではありません」 というSSLエラーで閲覧不能に。
スクリーンショット 2026-06-13 174536.png

自動更新(bncert-tool)が効いておらず、さらにツール自体もバグで実行できないという絶望的な状況から、裏の lego コマンドを直接叩いて力技で手動復旧させたので、そのトラブルシューティングの記録を残します。


2. 障害状況の切り分け(インフラエンジニアの視点)

闇雲に設定をいじる前に、まずは原因の切り分けを行いました。

  1. ドメインアクセス: SSLエラー(接続がプライベートではありません
  2. IPアドレスアクセス: タイムアウト(ポート80/443が怪しい?)
  3. AWSコンソール: インスタンスは「実行中」
  4. SSH接続: 可能(サーバー自体とポート22は生きている)

SSHで内部に入り、Webサーバーの状態を確認します。

ss -tuln | grep -E ':80|:443'

Apacheはしっかりポート80と443で LISTEN していました。これで「サーバー内部は無実(正常)。原因はSSLの期限切れ、およびファイアウォール(ポート80)の閉鎖による自動更新失敗」と断定しました。


3. 発生したトラブル:bncert-tool の異常終了

通常なら sudo /opt/bitnami/bncert-tool を再実行すれば直るはずですが、実行すると以下のエラーを吐いてツール自体が落ちてしまいました。

Error running ./autoupdate-linux-x64.run --mode unattended: child process exited abnormally

ツールの自動アップデート機能が内部でバグを起こしている模様。ツールが使えないため、手動(CUI)でのリカバリに切り替えました。


4. 復旧手順(解決策)

① AWS側でポート80(HTTP)を一時開放

Let's Encryptの認証サーバーは、ドメインの所有権を確認するために外部からポート80を使ってアクセスしてきます。以前のセキュリティ強化でここを閉じていると更新に失敗するため、AWS Lightsailの「ネットワーキング」タブから一時的に HTTP(80ポート / Anywhere) を開放します。

② lego コマンドを直接叩いて強制更新

bncert-tool の裏で動いている Let's Encrypt クライアント lego を直接実行します。
Webroot認証(--http)のオプションを明示的に指定するのがポイントです。

sudo /opt/bitnami/letsencrypt/lego \
  --path /opt/bitnami/letsencrypt \
  --email="あなたのメールアドレス" \
  --domains="あなたのドメイン.com" \
  --domains="www.あなたのドメイン.com" \
  --http \
  --http.webroot="/opt/bitnami/wordpress" \
  renew

成功すると、ログに The certificate expires in 89 days(発行直後のため、残り89日あるよという意味)と表示され、無事に最新の証明書が取得できます。

③ Webサーバー(Apache)の再起動

新しくなった証明書ファイルをApacheに読み込ませるため、サービスを再起動します。

sudo /opt/bitnami/ctlscript.sh restart apache

ブラウザのシークレットウィンドウでアクセスし、無事に鍵マークが復活してサイトが表示されるようになりました!


5. まとめと教訓

  • 公開して終わりではない: セキュリティのためにポート80を閉じると、Let's Encryptの自動更新(3ヶ月ごと)が失敗する罠がある。
  • ツールが壊れても焦らない: bncert-tool のようなラッパーツールがバグで動かなくなっても、その裏で動いているコアな仕組み(今回の場合は lego)を理解していれば、手動でいくらでもねじ伏せることができる。

実務さながらの良いインシデント対応の経験になりました。同じ状況で詰まった方の参考になれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?