2015年9月23日 星期三

[Mqtt broker] ssl3_read_bytes tlsv1 alert unknown ca

說明:使用mosquitto_sub指令想subscribe主題,Mosquitto broker卻出現ssl3_read_bytes tlsv1 alert unknown ca的錯誤訊息。


解法:
因產生CA憑證時的Organization Name與產生Server csr (certificate signing request)時的Organization Name輸入一樣,加上在localhost,可能導致衝突或無法辨識,將:
  • 產生CA憑證時的Organization Name修正為MqttCA,
  • 產生Server csr時的Organization Name修正為MqttServer即可。




[Mqtt broker] Mosquitto broker出現OpenSSL Error: SSL routines:SSL3_GET_RECORD:wrong version number

說明:使用Mosquitto_sub指令subscribe主題時,Mosquitto broker出現OpenSSL Error: SSL routines:SSL3_GET_RECORD:wrong version number訊息。


參考解法:
使用mosquitto_sub並使用TLS/SSL加密,漏掉--tls-version tlsv1或--cafile CA憑證路徑。

[Mqtt broker] 出現Unable to load server certificate. Check certfile.

說明:啟動Mosquitto broker出現Error: Unable to load server certificate "C:\OpenSSL-Win64\bin\PEM\srv.crt". Check certfile.


可能解法:
1. 產出broker憑證時,沒輸入最後的pass phrase。
2. 啟動broker時,輸入的pass phrase有誤。

2015年9月9日 星期三

[Mqtt broker] 使用Mosquitto broker出現遺失pthreadVC2.dll或SSLEAY32.dll的解法

說明:安裝完mosquitto broker後,執行mosquitto.exe想啟動Mqtt broker卻出現遺失SSLEAY32.dll,要重新安裝程式的對話視窗。或執行mosquitto_sub.exe想訂閱訊息,
也出現遺失pthreadVC2.dll的對話視窗。


解法:
原來在安裝mosquitto時,就有提示了。
下載Win32 OpenSSL vX.X.X Light安裝後,到安裝folder下複製ssleay32.dll到mosquitto的folder。而pthreadVC2.dll下載後一樣放至mosquitto的folder下即可。

















參考資料:
http://stackoverflow.com/questions/6534505/how-to-fix-libeay32-dll-was-not-found-error
http://guang.logdown.com/posts/235550-mqtt-mosquitto-teaching
https://slproweb.com/products/Win32OpenSSL.html
ftp://sources.redhat.com/pub/pthreads-win32/dll-latest/dll/x86/