Ssl C++;带有TLS的MQTT MOSQUITO客户端 < >我创建了一个使用MyCuto库和MyBuffTopp的C++ MQTT客户端。

Ssl C++;带有TLS的MQTT MOSQUITO客户端 < >我创建了一个使用MyCuto库和MyBuffTopp的C++ MQTT客户端。,ssl,mqtt,tls1.2,mosquitto,Ssl,Mqtt,Tls1.2,Mosquitto,我希望连接到的MQTT代理使用TLS1.2,其中只有用于握手的服务器/代理证书(不需要客户端证书) 如何在代码中验证服务器证书的有效性 我在mosquittopp.h文件中看到了以下与TLS相关的函数: tls\u set正在查找客户端上已存在的证书,但证书将仅来自服务器/代理?我对这个有点迷茫。提前感谢。客户端需要CA(证书颁发机构)证书的副本,该证书用于在建立连接时签署代理发送的证书 客户机不需要代理证书的副本,除非您使用的是自签名证书(因为在这种情况下,代理证书将与CA证书相同) 对于任何

我希望连接到的MQTT代理使用TLS1.2,其中只有用于握手的服务器/代理证书(不需要客户端证书)

如何在代码中验证服务器证书的有效性

我在mosquittopp.h文件中看到了以下与TLS相关的函数:


tls\u set
正在查找客户端上已存在的证书,但证书将仅来自服务器/代理?我对这个有点迷茫。提前感谢。

客户端需要CA(证书颁发机构)证书的副本,该证书用于在建立连接时签署代理发送的证书

客户机不需要代理证书的副本,除非您使用的是自签名证书(因为在这种情况下,代理证书将与CA证书相同)

对于任何真正面向internet的代理,您可能应该使用公共可信CA,他们将提供CA证书(实际上通常是CA证书链)

int tls_set(const char *cafile, const char *capath=NULL, const char *certfile=NULL, const char *keyfile=NULL, int (*pw_callback)(char *buf, int size, int rwflag, void *userdata)=NULL);
int tls_opts_set(int cert_reqs, const char *tls_version=NULL, const char *ciphers=NULL);
int tls_insecure_set(bool value);
int tls_psk_set(const char *psk, const char *identity, const char *ciphers=NULL);