【问题标题】:How to connect to the nomad/consul UI with tls enabled?如何在启用 tls 的情况下连接到 nomad/consul UI?
【发布时间】:2021-09-26 00:14:52
【问题描述】:

我现在正在研究 Hashistack 并尝试在其上部署基于宠物微服务的项目。我在裸机节点上部署了具有 Ansible 角色的 Nomad 和 Consul 集群:

Nomad 和 Consul 的服务器放在同一个节点上。

我不使用保险柜。我创建了单独的私有 CA,为这些服务生成了 TLS 证书和私钥,并配置了 Nomad 和 Consul 服务器和客户端来使用它们。

我的目标是设置生产就绪的 Hashistack 集群。所以我想为这两个服务设置完整的 TLS。

我通过 HTTP 成功连接到两个 UI,但是当我尝试 HTTPS 时,我收到 SSL_ERROR_BAD_CERT_ALERT 错误。

如果您建议在生产环境中操作 Hashistack 的最佳实践以及所需的步骤,我将不胜感激。

谢谢!

【问题讨论】:

    标签: https production consul nomad


    【解决方案1】:

    我有点迟回复,但遇到了同样的错误。想我会留下我的解决方案,以防未来的读者发现它有帮助......

    对我来说,问题归结为我的 Nomad tls 配置块中的 verify_https_client 标志。由于 Nomad 配置为双向 TLS,所有客户端(包括 Web 浏览器)都需要提供由 Nomad 使用的同一 CA 签名的客户端证书才能连接。您需要生成/签署该证书,并查看如何配置您的浏览器以在需要时自动提供它。

    对于生产用途,这是最安全的途径。对于开发环境,您只需在 Nomad 配置中将 verify_https_client 配置设置为 false

    这是该标志的 Nomad 文档的链接:https://www.nomadproject.io/docs/configuration/tls#verify_https_client

    【讨论】:

    • 您好,如果 verify_https_client = true ,您如何从 Web 浏览器打开?
    【解决方案2】:

    您首先需要为您的网络浏览器生成一个客户端证书。

    然后将其转换为 PKCS12 格式。

    openssl pkcs12 -export -inkey ./nomad-cli.key -in ./nomad-cli.pem -out ./nomad-cli.p12
    

    假设您正在使用 Chrome,

    转到chrome://settings/certificates?search=certificate并导入转换后的证书nomad-cli.p12

    【讨论】:

      【解决方案3】:

      我找到了相同案例的答案。

      当使用 mTLS 部署 nomad 集群时,需要将 cli 密钥部署到每个服务器节点或至少在您配置连接的节点上。

      指令https://learn.hashicorp.com/tutorials/nomad/security-enable-tls#nomad-ca-key-pem生成的cli键

      和指令https://learn.hashicorp.com/tutorials/nomad/reverse-proxy-ui?in=nomad/manage-clusters配置的nginx

      但是本手册不包含配置 mTLS 的描述。

      您需要在位置/中添加以下参数。

       location / {
          ....
          proxy_pass      https://127.0.0.1:4646;
          proxy_ssl_certificate     /etc/nomad.d/cli.pem;
          proxy_ssl_certificate_key /etc/nomad.d/cli-key.pem;
          proxy_ssl_verify              off;
          ....
      }
      

      在这种情况下,nginx 可以使用 TLS 连接带有游牧 http 端口的加密连接。 也不要忘记至少启用 http 基本身份验证。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-19
        • 2018-05-21
        • 2011-02-11
        • 2016-01-22
        • 2022-07-01
        • 2022-01-24
        相关资源
        最近更新 更多