本文将介绍使用 acme.sh 配置 Let's Encrypt 为 IP 地址签发 SSL 证书。 acme.sh 本身不强制 root 运行(官方也写了 "You don't have to be root then, although it is recommended"),但本文的证书需要写入 /etc 且 --reloadcmd 需要重载服务,均需要 root 权限,所以建议先使用 sudo -i 切换到 root 用户再执行本文命令。 之前写过一篇使用 acme.sh 签发证书的教程,但在很长一段时间里,Let's Encrypt 只能给域名签发证书。 经过几个月的测试之后,现在终于可以对 IP 地址 下手了。 为什么要给 IP 签发证书 在很多场景下,我们并不一定需要域名,但确实需要 HTTPS。比如: DNS over HTTPS(DoH)服务无需依赖域名解析 直接通过 IP 提供 DoH 服务,避免「为了安全先做一次不安全的域名解析」这种哲学问题。 Web 服务默认站点隐藏真实域名 默认站点只暴露 IP,不暴露真实域名,顺便还能挡掉一部分不太礼貌的爬虫。 临时服务或测…