Let's encryptの証明書取得(認証)が失敗する
証明書取得が失敗するようになりました。
毎月1回実行しているcron「certbot renew」が失敗しているのに気が付き、
応急処置的に行った
「**certbot certonly --webroot -w /srv/www/www.dummy.net/ -d www.dummy.net**」
も、環境構築時には成功していたのに失敗するようになっていました。
発生している問題・エラーメッセージ
certbot certonly --webrootで下記結果となります。
> certbot certonly --webroot -w /srv/www/www.dummy.net/ -d www.dummy.net Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator webroot, Installer None Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org Cert is due for renewal, auto-renewing... Renewing an existing certificate Performing the following challenges: http-01 challenge for www.dummy.net Waiting for verification... Cleaning up challenges Failed authorization procedure. www.dummy.net (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: The key authorization file from the server did not match this challenge [xKeqEHuUlchL7M6L0c-B9FWmfNsa3rGx80yIC3KMisc.f4UUZHSY0vEcB-GacmvQTf7FAgm4tXCXc7fYdVpoy4o] != [http://www.dummy.net/.well-known/acme-challenge/xKeqEHuUlchL7M6L0c-B9FWmfNsa3rGx80yIC3KMisc] IMPORTANT NOTES: - The following errors were reported by the server: Domain: www.dummy.net Type: unauthorized Detail: The key authorization file from the server did not match this challenge [SIqU8-wiN-yA4Vc39ArEUpHqyBamFQgc6o8xcKNnFvI.f4UUZHSY0vEcB-GacmvQTf7FAgm4tXCXc7fYdVpoy4o] != [http://www.dummy.net/.well-known/acme-challenge/SIqU8-wiN-yA4Vc39ArEUpHqyBamFQgc6o8xcKNnFvI]
certbot renewの方は、試行錯誤しすぎて下記エラーが出るようになってしまっています。
> certbot renew urn:acme:error:rateLimited :: There were too many requests of a given type :: Error creating new authz :: too many failed authorizations recently: see https://letsencrypt.org/docs/rate-limits/. Skipping.
certbot certonlyの方もリクエストしすぎエラーかとも思ったのですが、エラーメッセージは違うように見えます。
該当のソースコード
httpディレクティブ内で下記をincludeしています。
意図としては
「httpはhttpsに転送するが、Let'sencryptが要求するURLだけはhttpのまま応答する」
となります。
nginx
1server { 2 # トップページ 3 listen 443 ssl http2; 4 server_name www.dummy.net; 5 ~以下略~ 6} 7server { 8 # 未定義のpathは無応答とする 9 listen 443 ssl; 10 listen [::]:443 ssl http2; 11 server_name _; 12 ssl_certificate /etc/letsencrypt/live/www.dummy.net/fullchain.pem; 13 ssl_certificate_key /etc/letsencrypt/live/www.dummy.net/privkey.pem; 14 return 444; 15} 16server { 17 # httpはssl証明書認証以外はhttpsに飛ばす 18 listen 80; 19 server_name www.dummy.net; 20 access_log /srv/www/www.dummy.net/logs/access.log main; 21 error_log /srv/www/www.dummy.net/logs/error.log warn; 22 location /.well-known/acme-challenge/ { 23 root /srv/www/www.dummy.net/; 24 return 200 http://$host$request_uri; 25 } 26 location / { 27 root /srv/www/www.dummy.net/static/; 28 return 301 https://$host$request_uri; 29 } 30}
試したこと
・ブラウザから下記にアクセス
http://www.dummy.net/.well-known/acme-challenge/xKeqEHuUlchL7M6L0c-B9FWmfNsa3rGx80yIC3KMisc
→httpのページが表示され、URLが文字列として返ってきた。
http://www.dummy.net/somewhere
→httpsサイトに転送され、証明書がないのでブラウザ側で「このサイトは安全ではありません」エラーとなった。
nginxの振り分けは意図通りに動作しているように見えました。
補足情報(FW/ツールのバージョンなど)
nginx version: nginx/1.12.2
certbot 0.24.0
以上、よろしくお願いいたします。orz
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。