AWSのLightSail上のWordPressで組んだサイトにLet'sEncryptを実装しました。
3ヶ月後に証明書を更新しようと試みているのですが、以下の問題で更新に失敗します。
更新コマンド
sudo certbot renew --force-renewal --webroot-path /home/bitnami/apps
エラー
Attempting to renew cert (example.com) from /etc/letsencrypt/renewal/example.com.conf produced an unexpected error: Failed authorization procedure. example.com (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from https://example.com [xxx.xxx.xxx.xxx]: "<!DOCTYPE html>\n<html lang=\"ja\">\n<head>\n <meta charset=\"utf-8\">\n <meta http-equiv=\"Content-Type\" content=\"text/html; chars". Skipping. All renewal attempts failed. The following certs could not be renewed: /etc/letsencrypt/live/example.com/fullchain.pem (failure) IMPORTANT NOTES: - The following errors were reported by the server: Domain: example.com Type: unauthorized Detail: Invalid response from https://example.com [xxx.xxx.xxx.xxx]: "<!DOCTYPE html>\n<html lang=\"ja\">\n<head>\n <meta charset=\"utf-8\">\n <meta http-equiv=\"Content-Type\" content=\"text/html; chars" To fix these errors, please make sure that your domain name was entered correctly and the DNS A/AAAA record(s) for that domain contain(s) the right IP address.
[https://example.com]自体には正常にアクセスできており、現時点もsslは正常に動いております。
エラーメッセージをたよりにググると「.well-known/acme-challenge」ディレクトリが無い問題でのエラー解決はたくさん出てきますが、理由が異なるようです。
なぜ正常にアクセスができているのに更新ではエラー処理されてしまうのかがさっぱりわかりません。
どなたかヒントになりそうな箇所でもわかればご指摘いただけると嬉しいです。
※ ちなみに、"/etc/letsencrypt/renewal/example.com.conf"の設定内容(更新パスなど)には問題がないと思います。
※ 最初にssl化してから特に設定ファイルは変更していません。(最初にSSL化する時には正常に証明書が作成できておりました)
hoge.comは実在するドメインなので、例示する際にはexample.comを用いてください
--webroot-path /home/bitnami/apps を指定されていますが、これはドメインそのままにアクセスしたときに開かれるフォルダ(ドキュメントルート)なのでしょうか?
ドメイン修正しました。
> これはドメインそのままにアクセスしたときに開かれるフォルダ(ドキュメントルート)なのでしょうか?
すみません。これは間違っていました。
ドキュメントルートを設定しても結果は同じでした。
正しいドキュメントルートを指定した際の実行したコマンドとエラーメッセージに張り替えていただけますか?
ドキュメントルートを指定しても特に変わりませんでした。
先ほどのもので更新は正常に動いているようです。
その後いろいろ調査していて気づいたのですが、apacheのconfファイルでsslへのRewriteRuleを書いているのですが、それを一度止めて更新をかけたら更新できました。(もちろんその後戻してます)
一旦は更新できたのですが、このままではcronで更新を走らせてもエラーとなってしまいますので、3ヶ月に一度手動更新をせねばならない状況です。
そもそも更新モジュールがhttps(https://example.com)に向いてる時点で設定がおかしい気がしてきたのですが、関係ありそうでしょうか??
certbotは自身にサーバ機能があるので、一旦httpdを停止、certbotのスタンドアロンサーバで証明書の更新、httpdを再起動、という流れであればApacheのconfを書き換えずに自動化できます(自分の環境はそうしています)。
なるほど!確かにそれもありですね!
解決すると思います。ありがとうございました^^
回答1件
あなたの回答
tips
プレビュー