web-dev-qa-db-ja.com

LetsEncryptを使用したワイルドカードSSLでエラーが発生する

LetsEncrypt経由で自分のウェブサイトにワイルドカードSSLを作成したい。私はその指示に従い、Certbotを実行した後、DNSチャレンジを実行し、次のように述べています。

Please deploy a DNS TXT record under the name

_acme-challenge.db.example.com with the following value:
 jn324jr348r342bhr234hrou234nbr4324fj34r

また、db.example.comは/etc/bind/の中にあります。

私がしていることは、開いたdb.example.comであり、一番下の行にこれを追加します。

_acme-challenge.db.example.com 3600 IN TXT "jn324jr348r342bhr234hrou234nbr4324fj34r"

しかし、私がこのようにそれをチェックするとき:

nslookup -type=TXT _acme-challenge.example.com

それは私にこのエラーを与えます:

 - The following errors were reported by the server:                           

   Domain: db.example.com                                                
   Type:   dns                                                                 
   Detail: DNS problem: NXDOMAIN looking up TXT for                            
   _acme-challenge.db.example.com - check that a DNS record              
   exists for this domain                                                      
ubuntu@me-1:/etc/bind$ nslookup -type=TXT _acme-challenge.example.com
Server:         127.0.0.53                                                     
Address:        127.0.0.53#53                                                  

** server can't find _acme-challenge.example.com: NXDOMAIN

そして、Certbotを実行すると、エラーも発生します。

Some challenges have failed.                                                   

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

   Domain: db.example.com                                                
   Type:   dns                                                                 
   Detail: DNS problem: NXDOMAIN looking up TXT for                            
   _acme-challenge.db.example.com - check that a DNS record                                           
   exists for this domain

ここで何が悪いのですか?

7
Fcoder

DNSゾーンの変更が世界中のサーバーで更新されるまで、しばらく待つ必要があることに注意してください。問題は、DNSへの変更の適用が速すぎるかどうかを確認しようとしていることです。この場合には良い方法があり、DNSプロバイダーのAPIを使用する必要があります。たとえばOVHを使用する場合、DNSの変更にAPIを使用でき、certbotは変更をすぐに確認できます。ここにすべてのAPIプラグインのリストがあります: https://certbot.eff.org/docs/using.html?highlight=dns#dns-plugins

DNSプロバイダーがこれをサポートしていない場合は、DNSゾーンをCloudflareに移動してみてください。とても簡単で、そのサービスは無料で受けられます。また、DNS APIを使用すると、次のようにcronに1つのコマンドを残して、ワイルドカード証明書を無料で更新できます。

0  1   20 * *   root    certbot certonly --non-interactive -d example.com -d '*.example.com' --dns-cloudflare --dns-cloudflare-credentials /my/secret/api/key/location
10
suprovsky

ゾーンファイルでは、ドット.で終わらない名前は、通常、現在のドメインに関連しています。

したがって、_acme-challenge.db.example.comのゾーン内のdb.example.comのエントリは、実際には_acme-challenge.db.example.com.db.example.com.のエントリを意味します

正しいエントリがあることを確認するには、次のいずれかを実行できます。

  • 最後にドットを追加:_acme-challenge.db.example.com.

  • または、ドメインを含めないでください:_acme-challenge

これはdb.example.comのゾーンに基づいていますが、ゾーンがexample.comの場合は少し異なります。

また、ゾーンを更新するときに(SOAレコード内の)ゾーンのシリアルを更新し、ゾーンを再ロードすることを忘れないでください。

これはもちろん、ドメインに登録されたネームサーバーが独自のサーバー(およびセカンダリ)であることに基づいています。

nslookupまたはDigを使用してクエリを実行する場合、どのサーバーから回答を求めるかを指示できます。常に最初にプライマリ、次にセカンダリ、その他のサーバーを確認することから始めます。また、一部のタイプの更新には時間がかかる場合があることを忘れないでください(特に、前のレコードのTTLの影響を受ける変更と、ドメインの負のキャッシュTTLの影響を受ける追加) 。

7
jcaron