【问题标题】:Certbot DNS problem - not using /etc/hostsCertbot DNS 问题 - 不使用 /etc/hosts
【发布时间】:2021-12-02 13:27:56
【问题描述】:

我正在尝试使用来自 LetsEncrypt 的 certbot 在 Raspberry Pi 上安装证书。我已经安装了 Apache2 并在 Raspberry Pi 上的 http://subdomain.mydomain.com 创建了一个网络服务器。 certbot 命令获取证书并将其写入http://subdomain.mydomain.com/.well-known/acme-challenge/

背景信息:我这样做是因为我需要一个本地服务器来处理 IoT 设备,而我的 Ajax 调用失败了,因为我不允许将 http 与 https 混合使用。物联网设备无法使用 SSL 托管网络服务器 - 它们使用简单的 http://192.168.1.xx/<string> 格式

我不想在我的注册商/ISP 处创建 DNS 条目,因为我正在尝试创建一个可扩展的解决方案并创建数百个(如果我们做得好的话,可能是数千个)子域条目是不切实际的。创建我自己的 DNS 服务器是可能的,但我宁愿只在 Pi 上完成这一切 - 我的 bash 安装脚本会处理所有事情(一旦我让它工作!)。

我首先尝试在本地主机 (/etc/hosts) 文件中创建一个条目,如下所示:

   127.0.0.1       localhost
   ::1             localhost ip6-localhost ip6-loopback
   ff02::1         ip6-allnodes
   ff02::2         ip6-allrouters

   127.0.1.1       SubDomain
   192.168.1.111   subdomain.mydomain.com

这适用于像ping 这样的命令,但不适用于nslookupdig,绝对不适用于certbotcertbot 命令找到我的主服务器 - DNS 配置有 * 以转到所有未知子域的公共 IP:

  A       *         xx.xx.xx.xx //My public IP address

然后我安装了dnsmasq(参见:When using proxy_pass, can /etc/hosts be used to resolve domain names instead of "resolver"?)并遵循此处显示的配置选项:How to Setup a Raspberry Pi DNS Server

但是,这也不起作用。 certbot 仍然查看我的主(外部 DNS)并找到我的公共(通配符)IP。以下是 /etc/dnsmasq.conf 中所做更改的摘要

domain-needed ## enabled
bogus-priv ## enabled
no-resolv ## enabled
server=8.8.8.8 ## added (#server=/localnet/192.168.0.1 left as is)
server=8.8.4.4 ## added
cache-size=1500 ##increased from 150

如何强制 certbot 查找和使用我的本地/私有 IP 192.168.1.111?任何使用脚本/重定向的替代解决方案?

【问题讨论】:

    标签: dns raspberry-pi lets-encrypt certbot


    【解决方案1】:

    使用 Let's Encrypt DNS 验证创建通配符证书。然后,您必须手动更新证书。否则,您的服务器必须位于公共 Internet 上且 DNS 设置正确。

    【讨论】:

    • 我现在正在这样做,但这涉及每三个月更新一次证书 - 这对于 100 次安装来说又是不切实际的。
    • @Chiwda - 那么你的目标是不可能的。您必须拥有公共 DNS 记录或手动创建证书。您对创建 DNS 服务器的评论将不起作用,因为它也必须是公开的。这就是 Let's Encrypt 验证您控制域的方式。
    • Bind 可以安装在私有 IP 地址上:digitalocean.com/community/tutorials/… 我正在考虑,虽然它变得相当繁重/复杂
    • 您可以在私有 IP 地址上安装绑定并创建私有 DNS 区域。这对 Let's Encrypt 没有帮助。 Let's Encrypt 只会与您的域的 Authoritative Name Servers 通信。这些服务器必须是公开的。
    猜你喜欢
    • 2015-07-10
    • 2017-03-14
    • 2023-02-18
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    相关资源
    最近更新 更多