Why is Let’s Encrypt now failing to look up an A record from Pragmatometer.com

domain-name-systemlets-encrypt

I have used Let's Encrypt successfully for two of my domains; but when I tried the same steps as https://antipaucity.com/2016/01/06/lets-encrypt-centos-6-truly-free-ssl/, it hangs and eventually throws the exception below. All domains in question are hosted on the same server, with administrative details like DNS being the same AFAIR.

When letsencrypt-auto --debug certonly crashed, here was the output:

Traceback (most recent call last):
  File "/home/cjsh/.local/share/letsencrypt/bin/letsencrypt", line 11, in 
    sys.exit(main())
  File "/home/cjsh/.local/share/letsencrypt/local/lib/python2.7/site-packages/letsencrypt/main.py", line 692, in main
    return config.func(config, plugins)
  File "/home/cjsh/.local/share/letsencrypt/local/lib/python2.7/site-packages/letsencrypt/main.py", line 509, in obtain_cert
    _, action = _auth_from_domains(le_client, config, domains, lineage)
  File "/home/cjsh/.local/share/letsencrypt/local/lib/python2.7/site-packages/letsencrypt/main.py", line 93, in _auth_from_domains
    lineage = le_client.obtain_and_enroll_certificate(domains)
  File "/home/cjsh/.local/share/letsencrypt/local/lib/python2.7/site-packages/letsencrypt/client.py", line 274, in obtain_and_enroll_certificate
    certr, chain, key, _ = self.obtain_certificate(domains)
  File "/home/cjsh/.local/share/letsencrypt/local/lib/python2.7/site-packages/letsencrypt/client.py", line 246, in obtain_certificate
    self.config.allow_subset_of_names)
  File "/home/cjsh/.local/share/letsencrypt/local/lib/python2.7/site-packages/letsencrypt/auth_handler.py", line 74, in get_authorizations
    self._respond(resp, best_effort)
  File "/home/cjsh/.local/share/letsencrypt/local/lib/python2.7/site-packages/letsencrypt/auth_handler.py", line 131, in _respond
    self._poll_challenges(chall_update, best_effort)
  File "/home/cjsh/.local/share/letsencrypt/local/lib/python2.7/site-packages/letsencrypt/auth_handler.py", line 195, in _poll_challenges
    raise errors.FailedChallenges(all_failed_achalls)
FailedChallenges: Failed authorization procedure. pragmatometer.com (tls-sni-01): urn:acme:error:connection :: The server could not connect to the client to verify the domain :: DNS problem: query timed out looking up A for pragmatometer.com


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

   Domain: pragmatometer.com
   Type:   connection
   Detail: DNS problem: query timed out looking up A for
   pragmatometer.com

   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. Additionally, please check that
   your computer has a publicly routable IP address and that no
   firewalls are preventing the server from communicating with the
   client. If you're using the webroot plugin, you should also verify
   that you are serving files from the webroot path you provided.

Best Answer

My best guess is that there was an intermittent / short-lived DNS failure / timeout from the Let's Encrypt side (or maybe you happen to be on a slow connection).

Indeed, a quick check of the core error message ("query timed out looking up A for" site:letsencrypt.org) reveals some reports on the LE forum site like this one.

Try again in a little bit, and you should be golden.