是SSL MQTT的CA所需的密钥和证书

时间:2019-05-14 07:04:04

标签: ssl-certificate elixir mqtt nerves-project

当我尝试连接代理elixir tortoise中的库时,我使用CA,证书和密钥启动了使用SSL,证书和密钥的mosquitto代理,要求我将密钥和证书与certifi一起使用。当我查看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}])

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

1 个答案:

答案 0 :(得分:0)

对于“常规” SSL连接,如果客户端要证明代理是他们声称的客户端,则只需要一个CA证书列表即可检查代理提供的证书。对于这种情况,通常应将keycert字段留空

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