我需要在 SSL 模式下运行 RabbitMQ 和 Mosquitto 代理。我假设我需要 CA 证书来生成服务器密钥和证书。我该如何获得它?我需要一个受信任的证书 - 而不是自签名的。我在网上搜索过它,但像 let's encrypt 这样的服务只为网页提供基于域的 SSL 密钥,我自己找不到任何东西,或者也许我一直没有找到好的。
感谢您的建议
卡尔
答案1
如果您只需要证书得到自己系统的信任,请创建自己的 CA 并告诉您的系统信任该 CA。这是企业网络中的常见程序,尤其是对于不会暴露给外部的系统(或公共 CA 不够可信的系统)。
有许多工具可用于构建您自己的 X.509 CA 并从中颁发 TLS 证书(或任何其他类型的 X.509 证书)。然后可以像其他配置一样将根 CA 证书部署到您的所有系统。
可以为 IP 地址颁发它们 - 尽管你真的首先,就不应该将您的环境设置为依赖固定 IP 地址;要求除 DNS 服务器之外的任何东西都使用基于 IP 的证书通常是一种糟糕的设计标志。
像 let's encrypt 这样的服务只提供基于域名的 SSL 密钥
基于域的证书是 SSL/TLS 具有“受信任”证书的一个组成部分。仅仅拥有“受信任的证书”是没有意义的;它之所以有用,是因为证书是为特定身份颁发的,并且您(或者说您的软件)可以将其与您正在连接的实体进行匹配。
由于大多数 TLS 通信都是针对客户端知道它想要连接到特定域名持有者的系统进行的,因此证书也是为此颁发的。(一般来说,即使是内部系统也是如此——虽然通过 IP 地址连接服务似乎很容易,但这是一个令人头疼的问题。)
对于网页
它们不仅限于网页。它们是 SSL/TLS 服务器证书。将它们用于 HTTPS 或 RabbitMQ 没有任何区别。