Zapic's Blog
解决在某些情况下Certbot因为SSL问题无法签发Let's encrypt通配符证书的问题

这个博客是在一台手机上面运行的你们造么?
最近网站证书要过期了(虽然套了cloudflare但是不想要他那10年证书),于是手动renew一波.
结果发现报错:

An unexpected error occurred:
SSLError: HTTPSConnectionPool(host='acme-v02.api.letsencrypt.org', port=443): Max retries exceeded with url: /directory (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'ssl3_read_bytes', 'tlsv1 alert internal error')],)",),))
Please see the logfiles in /var/log/letsencrypt for more details.

然后我手动打开了https://acme-v02.api.letsencrypt.org/directory
发现没有问题.
为什么会有这种毛病,我到最后都不知道.
于是换回https://acme-v01.api.letsencrypt.org/directory,发现连接成功,但是无法签通配符证书.
然后我看了一下https://acme-v02.api.letsencrypt.org/directory的证书和连接信息,也没发现什么毛病.
但是很意外的发现有几个子域名可以用:

  1. acme-v02-1.api.letsencrypt.org
  2. acme-v02-2.api.letsencrypt.org
  3. acme-v02-3.api.letsencrypt.org
  4. acme-v02-4.api.letsencrypt.org
  5. acme-v02-5.api.letsencrypt.org

5个备选(
然后我把挑战API换成了https://acme-v02-1.api.letsencrypt.org/directory,就好了 (
问题就是如此玄学.