【问题标题】:RabbitMQ LDAP over SSL verify certificateRabbitMQ LDAP over SSL 验证证书
【发布时间】:2020-08-07 17:35:58
【问题描述】:

使用 rabbitmq_auth_backend_ldap 时,如果我们使用 ssl,是否有必要提及 SSL 选项以确保我们正在与正确的服务器通信,使用以下选项:

{ssl_options, [ {server_name_indication, "abc.com"},
                    {verify, verify_peer},
                    {depth, 5}]},

请注意,我对对 Ldap 服务器进行客户端证书身份验证不感兴趣,而只是为了验证我是否真的在与正确的服务器通信,除非我从证书中验证 SN 或类似内容,否则无法确保这一点。浏览器会自动执行此操作,但 RabbitMQ 是如何执行此操作的。

如果服务器提供的 SSL 证书是由 GoDaddy 等受信任的根签名的,我还应该提及我信任的证书吗?

【问题讨论】:

    标签: ssl rabbitmq ldap erlang


    【解决方案1】:

    我从证书中验证 SN 或类似信息。浏览器有点做 那是自动的,但是 RabbitMQ 是如何做到这一点的。

    这是您问题的答案。

    每个启用 TLS 的工具和 TLS 实现,包括 Erlang/OTP 和 RabbitMQ,都有一种将一组证书标记为可信的方法。在 Linux 和其他类 UNIX 系统上,这通常是由超级用户管理的目录。该目录中的 CA 证书将被认为是受信任的,它们颁发的证书(例如客户端提供的证书)也是如此。受信任证书目录的位置因发行版、操作系统和版本而异

    更多信息here

    如果您想拥有自己的自定义信任库。您可以考虑以下内容。

    https://rabbitmq.docs.pivotal.io/37/rabbit-web-docs/ssl.html#keys-and-certs https://github.com/rabbitmq/rabbitmq-trust-store

    【讨论】:

      【解决方案2】:

      因此,如果没有以下配置,至少,我觉得 SSL 安全性对于 LDAP 设置来说是不完整的。
      在 LDAP 的情况下,从 RMQ 服务器(通过 erlang 客户端)到 LDAP 服务器建立连接,因此在那个时间点 SSL 证书由 LDAP 服务器提供。

      RMQ 服务器(客户端)-> LDAP 服务器(服务器)

      除非指定以下选项,否则不会验证证书。

      {servers, ["abc.com"]},
          {timeout, 10000},
          {use_ssl,     true},
          {ssl_options, [ {cacertfile, "/etc/ssl/certs/ca-certificates.crt"},
                          {server_name_indication, "abc.com"},
                          {verify, verify_peer},
                          {depth, 5}]},
          {port, 636}
      

      验证:verify_peer

      • 表示我们更愿意验证证书链
      • 将验证证书链是否终止于 cacertfile 中提到的受信任证书之一。

      证书文件

      • 将指向要信任的证书。
      • 它可以指向一个包含受信任列表的文件 ---Begin Certificate--- ---End Certificate--格式的证书
      • 如果 LDAP 服务器证书由受信任的根签名 证明我们可以将此变量指向 /etc/ssl/certs/ca-certificates.crt.
      • 如果服务器证书是自签名的,则指向一个文件 包含适当的证书。

      server_name_indication:abc.com

      • 这表明这不是我们正在与之交谈的服务器,而是 只有 abc.com
      • 将验证服务器证书 SN 是否具有 abc.com。

      深度:

      • 这表示证书链中的证书数量 我们将在它需要终止到其中一个之前遍历 我们拥有的可信证书。
      • 保持这个数字大于服务器证书链中的证书数量

      这在 LDAP 服务器和 RMQ 服务器之间没有任何客户端证书身份验证。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-06-28
        • 1970-01-01
        • 1970-01-01
        • 2015-01-24
        • 1970-01-01
        • 2015-06-14
        • 2017-06-13
        • 2019-03-29
        相关资源
        最近更新 更多