traefikでHTTP-01 challengeを使うように戻した

traefiklet's encryptacmeのチャレンジで、DNS-01 challengeでなく、HTTP-01 challengeを使うように設定を戻した。

なぜ戻したか

DNS-01 challengeだと更新がうまくいかない。期限が切れますよーというメールがletsencryptから来る。再起動で更新してくれるが、更新に失敗することもあって原因がはっきりしなかった。DNSプロバイダの相性が悪いのか・・?

HTTP-01 challengeであればDNSのレコードでチャレンジされることはないので、問題なく更新できると思う。というかDNS-01 challengeにする以前は、期限切れが近いというメールがきた覚えがない。なのでHTTP-01 challengeに戻すことにした。

やったこと

  • traefik.ymlHTTP-01 challengeを使うresolverを用意する
  • traefikの後ろにあるサービスのresolverの指定を変更する

この2点を行った。

まずはtraefik.ymlの設定を戻すことから。acmehttpChallengeを指定する:

# traefik.yml

# ... 省略

certificatesresolvers:
  hcresolver:
    acme:
      httpChallenge:
        entryPoint: web
      email: "some_addr@example.com"
      storage: "/letsencrypt/acme_hcresolver.json"

変更したら、次へ。

traefikの後ろにあるサービスの設定も以前のcertificatesresolverから上のhcresolverに戻す。

これでOK。HTTP-01 challengeで認証できる。

ほかの対処法?

DNS-01 challengeで失敗していたのは、伝播が済んでいないせいかもしれない?

以下のようなtraefik.ymlの設定で:

certificatesresolvers:
  dcresolver:
    acme:
      dnschallenge:
        provider: "<provider>"
        delayBeforeCheck: 42
      email: "some_addr@example.com"
      storage: "/letsencrypt/acme.json"

DNS-01 challengeを利用するとき、プロバイダーの指定の次の行のdelayBeforeCheckを結構大きい値にすれば問題ないかもしれない。 3000秒くらい待っておけばいいのかもしれない?

正直よくわかってない。

おわり

traefikで自動でHTTP-01 challengeで更新してくれるのならこれでいいと思って、使うことにした。 できればDNS-01 challengeが使えないにしても、原因ははっきりさせたかったが…残念。ちなみにDNSサーバーはconohaを利用させてもらっている。

短いですが以上です。


Amazonアソシエイト

DNS初学者向け:

https://amzn.to/3AJ9Xb0

コメント

タイトルとURLをコピーしました