![LetsEncrypt SSL のインストール中にエラーが発生しました: (http-01): urn:acme:error:connection :: サーバーはクライアントに接続してドメインを検証できませんでした](https://rvso.com/image/696997/LetsEncrypt%20SSL%20%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E4%B8%AD%E3%81%AB%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%3A%20(http-01)%3A%20urn%3Aacme%3Aerror%3Aconnection%20%3A%3A%20%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AF%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%81%AB%E6%8E%A5%E7%B6%9A%E3%81%97%E3%81%A6%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E3%82%92%E6%A4%9C%E8%A8%BC%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93%E3%81%A7%E3%81%97%E3%81%9F.png)
インストールしようとしていますLetsEncrypt
私のサーバー(ルート SSH アクセス権を持つ)では、staging.dnslaude.com
はパブリックにアクセス可能なドメインであり、 を指しています213.212.81.89
。
サーバーは実行されておりubuntu 16.04
、nginx
Web サーバーです。以下はnginx
構成です。
server {
listen 80;
server_name staging.dnslaude.com;
root /path/to/webroot;
location ^~ /.well-known/acme-challenge/ {
try_files $uri $uri/ =404;
}
rewrite ^(.*) https://$host$1 permanent;
}
server {
listen 443;
ssl on;
ssl_certificate /path/to/self/signed/certificate.crt;
ssl_certificate_key /path/to/key.key;
server_name staging.dnslaude.com;
root /path/to/webroot;
# ....
location ^~ /.well-known/acme-challenge/ {
try_files $uri $uri/ =404;
}
}
nginx
設定が登場acme-challenge
手動でフォルダにファイルを配置したため、動作しませんここ。
ただし、次のコマンドを実行すると:
letsencrypt certonly --webroot -w /path/to/webroot -d staging.dnslaude.com
次のエラーが返されます。
認証手順に失敗しました。staging.dnslaude.com (http-01): urn:acme:error:connection :: サーバーはドメインを確認するためにクライアントに接続できませんでした :: staging.dnslaude.com に接続できませんでした
重要な注意: - サーバーから次のエラーが報告されました:
ドメイン: staging.dnslaude.com タイプ: 接続 詳細: staging.dnslaude.com に接続できませんでした
これらのエラーを修正するには、ドメイン名が
正しく入力されていること、およびそのドメインの DNS A レコードに
正しい IP アドレスが含まれていることを確認してください。また、
コンピューターにパブリックにルーティング可能な IP アドレスがあること、および
ファイアウォールによってサーバーとクライアントの通信が妨げられていないことを確認してください。Webroot プラグインを使用している場合は、 指定した Webroot パスからファイルを提供していること
も確認する必要があります。
私は基本的なセットアップガイドに従いましたここ、そして提案されたようなあらゆる種類の構成バリエーションを試しましたここしかし、上記のエラーを回避できず、ログ ファイルにも原因を示すものが何も表示されません。
助言がありますか?
答え1
nginx の設定は正しいようです。
直感で、あなたのドメインに対して実行してみましたnmap
(質問にドメインが含まれていたため)。現在、ポート 80 をフィルタリングしているようなので、LetsEncrypt が外部に接続して検証する方法はありません。
問題のサーバーのローカル ファイアウォールでポート 80 が外部からアクセス可能であることを確認する必要があります (また、vhost プロバイダーなどに設定されている ACL も同様です)。
答え2
このエラーは、http-01 チャレンジを http から https にリダイレクトしている場合にも発生する可能性があります。.well-known/acme-challenge ディレクトリは、ポート 80 の http 経由でアクセスできる必要があります。
答え3
意図的に難読化しています。同じ 400 エラーが発生し、再度更新で迷い始めました。前回は別のエラーが発生していました。解決策: SSL for Free から以前の証明書を削除し、期限切れの証明書をサーバーからアンインストールします。(期限切れの証明書がまだ構成されていてアクティブな間は、新しい証明書を取得することはできません) jar2