質問
- Let's Encrypt SSL証明書の更新に失敗してしまいます。
-
本文:
自社ホームページを新しくしようと奮闘しており、専門知識がないため色々と手探りで模索しています。
Let's Encryptの更新をしようとしているものの、
「Web認証」による所有者の確認ができませんでした。
と出て失敗しまいます。
3か月前に新規で設置した時には出来ていたのですが、その後ホームページ制作会社の方に「httpからhttpsへのリダイレクト設定」と「www付きのドメインに統一」をしてもらった後、期限が近付いてきたため更新をしようとしたところ、現在トークン認証が上手く行かず困っています。
/www/htdocs下にWordpressなどホームページ関連のデータを置いているため、
/www/htdocs/.well-known/acme-challenge/トークン
としてアップロードしています。
ホームページ制作会社の方には「サーバーか、Wordpressのテンプレートやプラグインが原因ではないか」との回答をいただきましたが、原因が特定できず、個人的にはリダイレクトの設定が原因ではないかと少し疑っております。
トークンの認証が失敗してしまう原因として可能性のある点が分かる方がいらっしゃいましたら、原因や解決策等、ヒントをご教示いただけましたら幸いです。 - 緊急度:急ぎ投稿者:LunaKさん投稿時間:2019/03/20 18:03
回答 No.8691
-
本文:
SSLボックスだとおそらく、発行対象のドメイン(コモンネーム)は1個で、一つの証明書で複数ドメインを対象にするSANやワイルドカードではないと思います。
証明書を発行しようとしているドメインは、
www の付いたドメインだけでしょうか、それとも、ついていないドメイン(ネイキッドドメイン)もでしょうか?
もしも両方ともであれば、どちらがエラーなのでしょうか。それとも両方でしょうか?
http://(発行しようとしているドメイン)/.well-known/acme-challenge/(トークンファイル名)
でアクセスして、閲覧可能な状態になっていますか?
トークンファイルを置くディレクトリだけリダイレクトから除外する設定も可能なはずですが、
サーバソフトウェアにより具体的な設定内容が異なります。
例えば Apache だとか、 Nginx だとか、 Lighttpd だとか、 Hiawatha だとか。あるいは Windows 系かもしれませんが。
- 投稿者:ayaguchiさん 投稿時間:2019/03/20 18:51
質問者からのコメント
ご回答ありがとうございます。
証明書はwwwの付いたドメインのみ取得しており、その更新に失敗しているところでした。
http://(発行しようとしているドメイン)/.well-known/acme-challenge/(トークンファイル名)
でアクセスすると、httpsにリダイレクトされ、404 Not Foundになってしまいました。
サーバソフトウェアは(制作会社の方に直してもらっている時にテストページとなっており、その時にApacheと出ていましたので、おそらく)Apacheです。
回答 No.8694
-
本文:
一応補足しておくと、
> http://(発行しようとしているドメイン)/.well-known/acme-challenge/(トークンファイル名)
でアクセスして、閲覧可能な状態になっていますか?
閲覧可能な状態になっていても、そのときのアドレスバーに表示されているURLが、入力したURLと正確に一致していないと、リダイレクトされた結果が表示されているだけだから、LetsEncryptの認証的には「閲覧可能」とは見做されないので、認証されないと思う。
解決方法は他の方の書かれている通り、.well-know/ 以下を、リダイレクトの対象からはずすこと。( http-> https のリダイレクトと、wwwなし->wwwあり のリダイレクトの両方とも) - 投稿者:ジョバンニさん 投稿時間:2019/03/20 21:15
回答 No.8695
-
本文:
私が、一番疑っているのは、
example.com の証明書を発行しようとしているのに、
http://example.com/.well-known/acme-challenge/tokenfile
↓
https://www.example.com/.well-known/acme-challenge/tokenfile
のリダイレクトのため、ドメインが異なるから認証が通らないことですね。
http: → https: のリダイレクトに関しては、私の勘違いではなければ、認証が通ったのではないかと思います。
同じドメイン、同じ IP アドレス、(通常は同じマシン)を指しているから、ドメイン認証はクリアなのではないかと……
- 投稿者:ayaguchiさん 投稿時間:2019/03/20 23:27
回答 No.8697
-
本文:
そもそもですが、可能ならば、
「Web認証」(http-01 challenge)ではなく
「DNS認証」(dns-01 challenge)を利用するとよいのではないでしょうか。
https://www.sslbox.jp/support/man/new_application.php
「DNS認証」は、独自ドメインで、TXT レコードに所定の文字列を設定する必要があります。
この要件を満たせない場合は「Web認証」しかないですが。
あるいはまた、初級者向きではないのですが、「SSLボックス」を利用しないことです。
ウェブサーバ上で Certbot のような ACME クライアントを動かすとか、
手元のパソコンで ACME クライアントを動かして取得する方法です。
----
ところで、少なくとも Certbot の場合は、 http→https のリダイレクトは可のようです。
SSL ボックスの内部がどのようになっているかは判りませんが。
(スターサーバーで自動更新が動作するのも、リダイレクト除外をやっているのではなく、そもそもOKなのかもしれません。)
| http://example.com/.well-known/acme-challenge/testfile (A redirection to HTTPS is OK here and should not stop the challenge from working.) |
https://letsencrypt.readthedocs.io/en/latest/challenges.html
- 投稿者:ayaguchiさん 投稿時間:2019/03/21 07:30
質問者からのコメント
度々のご回答ありがとうございます。
DNS認証を試そうとしてみたところ、利用しているBizメール&ウェブビジネスというレンタルサーバーではDNSの編集が有料のようでした。
レンタルサーバーの変更も視野に入れつつ、まずはWeb認証でどうにか試してみようと思います。
また、Certbotはダウンロードの時点で挫折していたのですが、もう少し根気よく調べてみようと思います。
回答 No.8701
-
本文:
もしかしてですが、
www なしのドメインに対しての証明書の発行やインストールをしていないということはありませんよね?
訪問者から https でアクセスしてこられたときに支障がありますし、
かりに https にリダイレクトしたあとに www を付けてリダイレクトというような設定になっていたら、 https にリダイレクトした時点で証明書がないのでエラーになります。
- 投稿者:ayaguchiさん 投稿時間:2019/03/21 08:49
質問者からのコメント
度々のご回答ありがとうございます。
wwwなしのドメインの分は証明書のインストールをしていませんでした。
先ほどwwwなしのドメイン分を取得しようとしたところ、やはりエラーになってしまいました。
まずは最初にいただいたコメントや、他の方からのコメントで教えていただいたような、Apacheでの「.well-know/」以下の、「http:からhttps:」と「wwwなしからwwwあり」の2つのリダイレクト設定からの除外を試し、それが出来たらwwwなしのドメイン分の証明書もインストールしてみようと思いました。
ayaguchiさん、とても親切にありがとうございます。
回答 No.8708
-
本文:
皆様ありがとうございました!
おかげさまで解決できました。
.htaccessを
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/\.well\-known/acme-challenge/
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}/$1 [R=301,L]
# BEGIN WordPress
# END WordPress
と書いて、/.well-known宛の接続だけはhttpsにリダイレクトしないようにしました。
本当にありがとうございます! - 投稿者:LunaKさん 投稿時間:2019/03/22 17:03
回答 No.8693
この回答がベストアンサーです
>「httpからhttpsへのリダイレクト設定」
多分、これが原因。
「.well-known」だけ除外設定したら、OKだと思う。
それか、一時的に、httpからhttpsのリダイレクトの部分だけ無効にして、
更新が成功したら、元に戻せばよいと思う。