Help us understand the problem. What is going on with this article?

Let's encrypt のWeb認証に失敗する場合の許可の通し方

More than 3 years have passed since last update.

Let's encryptのWeb認証が通らないケース

Let's encryt で既に動作しているWebサーバを認証する場合、
フレームワークやWordPress、Drupalなどのアプリが、
パラメータをキャッチする設定になっていることで、Web認証に失敗する場合がある。

image

Failed authorization procedure. <<認証したいWebサーバのドメイン>> (http-01): urn:acme:error:unauthorized :: The client lacks suffijp/.well-known/acme-challenge/tpRITlAFEtuJgZvhQwF_eRDRKu8XoLkkrwlLpp6AFTw: "<html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
<hr><center>"

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

   Domain: <<認証したいWebサーバのドメイン>>
   Type:   unauthorized
   Detail: Invalid response from
   http://<<認証したいWebサーバのドメイン>>/.well-known/acme-challenge/tpRITlAFEtuJgZvhQwF_eRDRKu8XoLkkrwlLpp6AFTw:
   "<html>
   <head><title>403 Forbidden</title></head>
   <body bgcolor="white">
   <center><h1>403 Forbidden</h1></center>
   <hr><center>"

   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A record(s) for that domain
   contain(s) the right IP address.

解決方法

その場合は、以下の通り
別ディレクトリに認証を逃がすことで、
認証許可を出してもらうことが出来る。

チャレンジ方式の認証であり
不正に認証しているわけでもないので、認証自体も問題なし。

複数バーチャルホストの場合は、
nginx:/etc/nginx/global/letsencypt.conf
とかにまとめてIncludeしておけば良いと思う。

Nginxの場合

/etc/nginx/conf.d/virtual.conf
server {
    listen 80 default_server;
    server_name <<認証したいWebサーバのドメイン>>;

    #以下の2行を追加して、別ディレクトリで認証する。
    location ^~ /.well-known/acme-challenge/ {
      root /usr/share/nginx/html;
    }
    ...
}
letsencryptインストールディレクトリ
./letsencrypt-auto certonly --webroot --webroot-path /usr/share/nginx/html -d <<認証したいWebサーバのドメイン>>

image

letsencryptインストールディレクトリ
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/<<認証したいWebサーバのドメイン>>/fullchain.pem. Your
   cert will expire on 2017-01-06. To obtain a new or tweaked version
   of this certificate in the future, simply run letsencrypt-auto
   again. To non-interactively renew *all* of your certificates, run
   "letsencrypt-auto renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

参考

Let's encrypt運用のベストプラクティス
http://qiita.com/tkyk@github/items/9b6ba55bb2a6a5d90963
Free SSL/TLS Certificates with Let's Encrypt and NGINX
https://www.nginx.com/blog/free-certificates-lets-encrypt-and-nginx/

tigersun2000
オープンソースソフトウェアの普及と日本のIT産業振興に努めると共に、よりよい日本を創るために、オープンガバメントに関する活動をしています。出身大学は兵庫県、出身は香川。今は東京。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした