Paho GO客户端无法连接到Broker

时间:2017-03-13 10:55:49

标签: go openssl mqtt mosquitto paho

我试图连接到使用基于证书的身份验证的mosquitto代理。

下面的mosquitto剪切配置:

LIKE

它的工作原理,因为我能够使用以下命令在远程机器中创建pub / sub:

listener 8883
cafile /etc/mosquitto/ca_certificates/ca.crt
certfile /etc/mosquitto/certs/server.crt
keyfile /etc/mosquitto/certs/server.key

require_certificate true

或通过以下方式打开SSL套接字:

mosquitto_pub -t "/test" -m "test" --cafile ca/ca.crt --cert certs/client.crt --key certs/client.key -p 8883 -h server.com

mosquitto_sub -t "/test" --cafile ca/ca.crt --cert certs/client.crt --key certs/client.key -p 8883 -h server.com

但是当我尝试使用GO Paho客户端时,我的工作并不起作用:

配置加载不起作用,因为openssl s_client -connect server.com:8883 -CAfile ca/ca.crt -cert certs/client.crt -key certs/client.key 无法加载证书(此行configureMqttConnection())并且tls.LoadX509KeyPair(c.config.CertFile, c.config.KeyFile)失败,因为客户端无法发送握手中的证书。

我想问题可能是LoadX509KeyPair所期望的证书不是我生成的证书。我的证书上写着“开始信任的证书”和“#39;并且不被信任和认证或类似的东西。如果这是我不知道如何创建正确的证书。

我在下面使用此GO代码(代码以connect(backOff int)开头:

GO start()

我认为问题是我

1 个答案:

答案 0 :(得分:2)

启动console.log()的证书是OpenSSL“可信证书”文件,该文件是Go加密库无法理解/解析的格式。当您生成证书时,您是否使用x509 man page上“信任设置”下的任何选项? Go TLS库在文件开头只有looking BEGIN TRUSTED CERTIFICATE,其他任何内容都会引发错误。