是 CA 的 SSL MQTT 所需的密钥和证书
is key and cert required with CA for SSL MQTT
当我尝试连接到 elixir 中的库代理时,我使用 CA、证书和密钥启动了带有 SSL 的 mosquitto 代理 tortoise 要求我将密钥和证书与 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}])
我应该把密钥和证书和客户端放在一起吗??我认为这非常糟糕,因为密钥是秘密的,请帮助我了解它是如何工作的
对于 "normal" SSL 连接,客户端想要证明代理是他们声称的客户端,应该只需要一个 CA 证书列表来检查代理提供的证书。对于这种情况,您通常应该将 key
和 cert
字段留空
如果您正在执行相互验证的 SSL,其中客户端也向经纪人证明他们是谁,那么您需要向客户端提供它自己的 certificate/key(而不是来自经纪人的 certificate/key但可能[但不要求]由同一 CA 签名)
当我尝试连接到 elixir 中的库代理时,我使用 CA、证书和密钥启动了带有 SSL 的 mosquitto 代理 tortoise 要求我将密钥和证书与 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}])
我应该把密钥和证书和客户端放在一起吗??我认为这非常糟糕,因为密钥是秘密的,请帮助我了解它是如何工作的
对于 "normal" SSL 连接,客户端想要证明代理是他们声称的客户端,应该只需要一个 CA 证书列表来检查代理提供的证书。对于这种情况,您通常应该将 key
和 cert
字段留空
如果您正在执行相互验证的 SSL,其中客户端也向经纪人证明他们是谁,那么您需要向客户端提供它自己的 certificate/key(而不是来自经纪人的 certificate/key但可能[但不要求]由同一 CA 签名)