首页 > 解决方案 > 是 SSL MQTT 的 CA 所需的密钥和证书

问题描述

当我尝试连接代理时,我使用 CA、证书和密钥启动了带有 SSL 的蚊子代理,elixir tortoise中的库要求我将密钥和证书与证书放在一起。当我查看certifi它显示 CA 列表时,我们可以使用这个自签名吗?

Tortoise.Supervisor.start_child(
    client_id: "smart-spoon",
    handler: {Tortoise.Handler.Logger, []},
    server: {
      Tortoise.Transport.SSL,
      host: host, port: port,
      cacertfile: :certifi.cacertfile(),
      key: key, cert: cert
    },
    subscriptions: [{"foo/bar", 0}])

我应该把密钥和证书和客户端放在一起吗?我认为这很糟糕,因为密钥是秘密请帮助我了解它是如何工作的

标签: ssl-certificateelixirmqttnerves-project

解决方案


对于客户端想要证明代理是他们声称是客户端的“正常”SSL 连接,客户端应该只需要 CA 证书列表来检查代理提供的证书。对于这种情况,您通常应该将keyandcert字段留空

如果您正在执行相互身份验证的 SSL,而客户端也在向代理证明他们是谁,那么您需要向客户端提供它自己的证书/密钥(不是来自代理的证书/密钥,但可能 [但不是必需] 由相同的 CA)


推荐阅读