certbot 有两种模式,DNS 模式和普通模式,前者只能手动操作,适合国内主机。后者可以自动操作,适合国外主机。这里讲讲普通模式。
普通模式又分两种:standalone 和 webroot 两种模式。官方原文在此: https://certbot.eff.org/instructions?ws=other&os=centosrhel7 区别在于 standalone 需要主机腾出 80 端口(注意不仅是第一次需要,以后每次更新也需要),webroot 不需要。
如果主机必须要使用 80 端口(例如用于 80 到 443 重定向),那就只能用 webroot 模式。
webroot 模式使用时有个注意事项是:必须加上 -w 参数,后面写上域名对应的根目录,例如:
否则后续进行 certbot renew 时会出错。这一点在官方原文里没写。
我在这个坑里折腾了很久,详情可以看我的记录: https://springwood.me/certbot-dns-verify/