LetsEncrypt
をstaging.dnslaude.com
のサーバー(ルートSSHアクセス権があるサーバー)にインストールしようとしています。これは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;
}
}
acme-challenge
フォルダーにファイルを手動で配置したため、nginx
configが表示されます。 ここ 。
ただし、次のコマンドを実行すると:
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パスからファイルを提供していること。
私は概説された基本的なセットアップガイド here に従い、提案されたものなど、あらゆる種類の構成バリエーションを試しました here 。ただし、上記のエラーを回避することはできません。ログファイルに原因を示すものは何もありません。
助言がありますか?
Nginxの設定は正しいようです。
直感的に、私はあなたのドメインに対してnmap
を実行しました(質問にそれを含めたため)。現在ポート80をフィルタリングしているように見えるため、LetsEncryptが外部に接続して確認する方法はありません。
問題のサーバーのローカルファイアウォール(およびvhostプロバイダーなどに配置されている可能性のあるACL)で、ポート80が外部からアクセス可能になっていることを確認する必要があります。
このエラーは、http-01チャレンジをhttpからhttpsにリダイレクトしている場合にも発生する可能性があります。 .well-known/acme-challengeディレクトリは、ポート80のhttp経由でアクセスできる必要があります。
彼らは意図的に難読化します。私は同じ400エラーを抱えており、ウサギの穴を再び更新し始めました。以前は異なるエラーがありました。解決策:SSL for Freeから以前の証明書を削除し、期限切れの証明書をサーバーからアンインストールします。 (期限切れの証明書がまだ構成されていてアクティブな間は、新しい証明書は取得されません)jar2