繁体   English   中英

通过TLS连接到MQTT服务器的CA证书-iot.eclipse.org

[英]CA certificate to connect to MQTT server over TLS - iot.eclipse.org

我想使用客户端证书身份验证连接到ssl://iot.eclipse.org:8883。

如何获得CA证书?

我是否需要使用提供的CA证书生成自己的客户端证书。 或客户端证书也与CA证书捆绑在一起。

使用openssl来检查iot.eclipse.org的证书似乎来自Let's Encrypt项目。

$ openssl s_client -showcerts -connect iot.eclipse.org:8883CONNECTED(00000003)
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
 0 s:/CN=iot.eclipse.org
   i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
-----BEGIN CERTIFICATE-----

因此,您应该能够使用大多数现代OS /应用程序中设置的标准CA来检查此证书是否有效。

由于明显的原因,您将无法获得CA证书/私钥来生成自己的客户端证书,并且它们不会颁发客户端证书(并且假设eclipse.org代理已设置为使用相同的CA,则不必这样做)。

同样,对这个代理进行身份验证也没有意义,因为您是一个公共演示代理,因此您无法设置ACL来控制哪些用户可以订阅/发布特定主题。 如果要保护访问权限,则必须运行自己的公共经纪人

编辑:您不想执行客户端证书身份验证,您只想验证服务器证书,这是非常不同的。

为此,必须使用mosquitto_pubmosquitto_sub来指定CA证书或指向多个证书的目录的路径,以便为连接启用ssl / tls。 如果使用私有CA,则需要指定一个单独的CA证书,但是由于iot.eclipse.org代理使用的是众所周知的公共CA,因此您需要指定CA证书系统集合的路径。

/etc/ssl/certs Linux上,您可以按以下方式发布:

mosquitto_pub -h iot.eclipse.org -p 8883 --capath /etc/ssl/certs/ -t testing/ben -m foo

如果证书就像证明您身份的护照,那么CA就像护照办公室( 1 )。 您可以将Verisign,Entrust等视为护照办公室。 CA证书类似于护照办公室,提供一种检查护照是否有效的方法。

为了证明其身份,任何两个方(读取服务器和客户端)都可以使用证书。 要验证一方(读取服务器)的真实性,您需要CA证书。 Linux系统(Ubuntu)在/ etc / ssl / certs拥有常用的CA 证书

仅当您需要向服务器进行身份验证时才需要客户端证书。 这里的服务器是iot.eclipse.org,它不要求客户端身份验证,因此您不需要客户端证书。

因此,为了与服务器进行安全通信(读取TLS),可以使用系统中存在的CA存储(Ubuntu),如下所示。

mosquitto_pub -h iot.eclipse.org -p 8883 -t my_topic -m my_message --capath /etc/ssl/certs/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM