AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 772857
Accepted
Justin
Justin
Asked: 2016-04-26 13:44:06 +0800 CST2016-04-26 13:44:06 +0800 CST 2016-04-26 13:44:06 +0800 CST

为具有分布式流量的多个 Apache 服务器使用 Lets Encrypt SSL

  • 772

我在为两个不同服务器上设置的几个网站设置 Let's Encrypt 时遇到一些问题,并通过 HAProxy 将流量分配给它们。

服务器上有许多虚拟主机/域,所有这些都需要 SSL 证书。为了这篇文章,假设他们是:

  1. foo.some-site.com
  2. bar.some-site.com

这两个 A 记录都设置了两个 IP 地址。我可以使用 nwtools.com 或仅 nslookup 验证 A 记录foo.some-site.com和bar.some-site.com解析相同的两个 IP 地址。而且我知道 Let's Encrypt 要求虚拟主机使用有效记录,以便它可以进行查找。

我计划在两台服务器上为所有虚拟主机运行 Lets Encrypt 设置,其中一台运行良好,但是当我转到第二台时,出现错误:

[root@server httpd]# /opt/letsencrypt/letsencrypt-auto --apache -d foo.some-site.com
Checking for new version...
Requesting root privileges to run letsencrypt...
   /root/.local/share/letsencrypt/bin/letsencrypt --apache -d foo.some-site.com
Failed authorization procedure. foo.some-site.com (tls-sni-01): urn:acme:error:connection :: The server could not connect to the client to verify the domain :: Failed to connect to host for DVSNI challenge

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

   Domain: foo.some-site.com
   Type:   connection
   Detail: Failed to connect to host for DVSNI challenge

   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.

这可能是因为它正在查找或尝试 curl foo.some-site.com,并且它可能被定向到另一台服务器?我不确定这有多重要,因为两者都有相同的 VHost,除非 LetsEncrypt 实际上正在监听它自己建立的连接......

让我失望的是它适用于其中一个很好(比如bar.some-site.com),那么为什么它适用于一个站点,但对于另一个具有完全相同设置的站点却失败了?

如果有人知道如何在两台不同的服务器上为相同的虚拟主机设置 Lets Encrypt,我们将不胜感激!

centos apache-2.4 centos7 haproxy lets-encrypt
  • 2 2 个回答
  • 3874 Views

2 个回答

  • Voted
  1. Best Answer
    EEAA
    2016-04-26T13:51:05+08:002016-04-26T13:51:05+08:00

    这可能是因为它正在查找或尝试 curl foo.some-site.com,并且它可能被定向到另一台服务器?

    是的,绝对是。

    作为域验证质询-响应过程的一部分,LE 需要连接回运行 LE 客户端的服务器。在不深入细节的情况下,LE 客户端实际上会在您的网络服务器中临时提供某个文件,LE 服务器需要能够使用该文件来验证域所有权。

    在所有后端服务器上运行此命令是不必要且麻烦的。运行一次,然后将密钥和证书链复制到后端服务器的其余部分。

    让我失望的是它适用于其中一个很好(比如 bar.some-site.com),那么为什么它适用于一个站点,但对于另一个具有完全相同设置的站点却失败了?

    因为你走运了?:) 有可能您的负载均衡器偶然将 LE 请求定向到正确的位置一次,但第二次没有这样做。

    • 5
  2. Josh Richards
    2016-06-15T16:55:56+08:002016-06-15T16:55:56+08:00

    对于涉及多个 Web/应用程序服务器/负载均衡器的场景,有多种方法。您可以在大型环境的官方 Let's Encrypt 集成指南中阅读其中的一些内容。

    有一些巧妙的方法可以做到这一点,例如:

    • 将所有验证请求重定向到单个验证主机/主机池
    • 离线进行所有证书管理(即从您的管理主机而不是在您的 Web 服务器上请求、更新和分发密钥)

    什么对您有意义取决于您的偏好和各种环境特定要求。

    • 1

相关问题

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 使用 crontab 和 /etc/cron.hourly,daily,weekly 的区别

  • 持续监控许多服务器运行状况的简单方法?

  • Hudson 无法在 tomcat5 中启动

  • CentOS 的依赖挑战

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve