ssl-certificate - 是 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 连接,客户端应该只需要 CA 证书列表来检查代理提供的证书。对于这种情况,您通常应该将key
andcert
字段留空
如果您正在执行相互身份验证的 SSL,而客户端也在向代理证明他们是谁,那么您需要向客户端提供它自己的证书/密钥(不是来自代理的证书/密钥,但可能 [但不是必需] 由相同的 CA)
推荐阅读
- angular - Angular:如何动态更改 scss 变量?
- ios - 我正在尝试从 Swift subreddit 解析 JSON。为什么我有问题?
- xamarin - 有没有办法使用 MvvmCross 在 Xamarin Forms 中使用嵌套的 CollectionViews?
- c++ - 基于范围的循环,自动引用指针
- redis - 如何使用生菜反应api处理get命令的空响应
- flowtype - 流返回错误的类型
- java - 如何将其转换为 Mockito 2.2?
- c# - 无法从 MVC 发送邮件
- python - 如何在定义函数时消除python中的索引错误
- node.js - 如何在 AppEngine 上使用 Angular 提供静态文件