質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.35%

  • SSL

    526questions

    SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

  • Let's Encrypt

    46questions

Let's Encrypt 証明書の取得で404 Not Foundエラー

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 910

ruby_0ct

score 40

証明書の取得で以下のコマンドを実行すると
certbot certonly --webroot -w /var/www/html -d ドメイン名

404エラーが出てしまいます。

Failed authorization procedure. ドメイン名 (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://ドメイン名/.well-known/acme-challenge/c64FrhERnUaweQbOvXDmquOaRDPXyKXWTeCR0U102zQ: "<html>
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>"

IMPORTANT NOTES:
 - The following errors were reported by the server:

   Domain: ドメイン名.com
   Type:   unauthorized
   Detail: Invalid response from
   http://ドメイン名.com/.well-known/acme-challenge/c64FrhERnUaweQbOvXDmquOaRDPXyKXWTeCR0U102zQ:
   "<html>
   <head><title>404 Not Found</title></head>
   <body bgcolor="white">
   <center><h1>404 Not Found</h1></center>
   <hr><center>"

   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.

nginx.confでルートは設定しても同様のエラーです。解決策を教えていただけると助かります。

location ^~ /.well-known/acme-challenge/ {
      allow all;
      root /var/www/html;
  }

nginx.comf

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log debug;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

server {
    listen       80;
    server_name  〇〇.com;
    root /var/www/html;
}

server {
    listen       443 ssl;
    server_name  〇〇.com;
    charset UTF-8;

    # LetsEncrypt
    location ^~ /.well-known/acme-challenge/ {
        allow all;
        root /var/www/html;
    }
}

ちなみに、nginxを起動した状態と停止させた状態でも実行しましたがエラーでした。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

check解決した方法

0

解決しました。DNSの設定が原因でした。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

つsudo certbot --authenticator standalone --installer nginx -d <ドメイン名> --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/15 03:42

    ご回答ありがとうございます。
    実行してみたところ、まったく同じエラーでした。

    手動でvar/www/html内に.well-known/acme-challenge/というディレクトリを作ってみましたが、こちらも失敗しました。。。

    キャンセル

  • 2018/05/15 07:13 編集

    上記ではcertbotがWebサーバーとして適当に返事をするので予め.well-known/〜などを作成する必要はありません。余計な設定は全て削除してhttp://<ドメイン名>/でページが普通に表示される状態にしてから試して下さい。

    キャンセル

0

ちゃんと見てませんが、nginx.confが適切に設定されていないんじゃないかなぁ。

http://example.com/.well-known/acme-challenge/test.html

とか作って、外部からアクセスできるように設定してから試してみてください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/15 21:52

    ご回答ありがとうございます。nginx.confの設定を質問欄に記載しました。

    root内に適当なディレクトリを作成し、index.htmlを置いてアクセスしてみましたが、404でした。
    調べた限り、nginx.confの設定は間違っていないように思うのですが、root以下のディレクトリを読み込まない原因がわかりません。
    権限を777への変更も行いました。

    キャンセル

  • 2018/05/15 21:57

    http で接続できる必要があります。
    つまり
    server {
    listen 80;
    server_name 〇〇.com;
    return 301 https://〇〇.com$request_uri;
    }
    が問題。

    キャンセル

  • 2018/05/16 03:22

    よくみたら競合していますね。
    ご指摘の部分を削除し、listen 80に書き換えましたが、同様のエラーです。

    キャンセル

  • 2018/05/16 07:10

    競合はしていません。該当箇所を削除すると、80 で listen できなくなるはずです。書き換えたっていうのがよく分かりませんが、listen 80 だけ残したってことでしょうか?root の設定がないため、うまくいかないと思います。

    nginx のマニュアルを確認して、
    http://example.com/.well-known/acme-challenge/test.html
    へ正常にアクセスできるようにしてください。
    HSTS が設定されていると、ブラウザでの確認はかなりしんどくなるので、curl を使用しアクセス確認するとよいです。

    error_log を仕込めば、挙動を確認しやすくなります。
    参考:https://teratail.com/questions/35098

    キャンセル

  • 2018/05/17 03:49

    質問欄にあるcginx.confを更新しました。
    前回は、ご指摘のsever{}の下に同様の設定があったので競合していると思い、listen 443 ssl;の部分を80に変えました。

    今回はnginx.confを元の通りに戻して、rootを追加しましたが、同様のエラーでした。
    エラーログは設定してあるのですが、見当たるログはありませんでした。

    キャンセル

  • 2018/05/17 07:42

    全部 301 でリダイレクトしちゃってるのでは?
    設定を理解して、ログを活用したほうが良いです。
    ログに何も残っていないようであれば、ログレベルを上げてください。

    キャンセル

  • 2018/05/18 17:20

    エラーログはdebugレベルにしましたが、noticeのみで「workerがスタートした」「シグナルを受け取った」というログのみで関係するようなログは見当たりませんでした。

    それぞれの設定については、ほぼ理解しました。
    かなり調べ尽くして上記の通りで問題ないと思うのですが、原因がわからず先が見えません。
    普通は404になるとエラー出力されますよね?

    また、「return 301」は削除しました。

    キャンセル

同じタグがついた質問を見る

  • SSL

    526questions

    SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

  • Let's Encrypt

    46questions