当我尝试连接代理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}])
我应该把密钥,证书和客户端放在一边吗?我认为这很糟糕,因为密钥是秘密,请帮助我了解它的工作原理
答案 0 :(得分:0)
对于“常规” SSL连接,如果客户端要证明代理是他们声称的客户端,则只需要一个CA证书列表即可检查代理提供的证书。对于这种情况,通常应将key
和cert
字段留空
如果您正在执行相互认证的SSL,并且客户端也向代理证明他们是谁,那么您需要向客户端提供它自己的证书/密钥(不是来自代理的证书/密钥,但可能[但不是必需的] ]由同一CA签署)