2015-06-24 110 views
3

我試圖配置SSL的最常用的後面these steps配置SSL mosquitto錯誤

當我重新啓動mosquitto,有一個錯誤:

1435120150: mosquitto version 1.4.2 (build date Mon, 18 May 2015 15:25:19 +0100) starting 

1435120150: Config loaded from /etc/mosquitto/mosquitto.conf. 

1435120150: Opening ipv4 listen socket on port 8883. 

1435120150: Error: Unable to create TLS context. 

這是我mosquitto配置:

pid_file /var/run/mosquitto.pid 
persistence true 
persistence_location /var/lib/mosquitto/ 

log_dest file /var/log/mosquitto/mosquitto.log 

include_dir /etc/mosquitto/conf.d 

bind_address Dell 
port 8883 
cafile /etc/mosquitto/ca_certificates/ca.crt 
certfile /etc/mosquitto/certs/Dell.crt 
keyfile /etc/mosquitto/certs/Dell.key 
tls_version tlsv1 

如何正確配置呢?

回答

1

Unable to create TLS context表明呼叫SSL_CTX_new()失敗。這在設置偵聽套接字的SSL選項的開始處是正確的,並且是非常意外的。

你可以做的唯一的事情就是檢查你的openssl版本,並改變/刪除tls_version選項。除非你有特別的理由拒絕TLSv1.1或TLSv1.2(或將來的TLSv1.3),否則刪除它是最好的選擇。

+0

感謝@ralight。我刪除了選項tls_version並重新啓動蚊子。沒關係。但是當我測試mosquitto_sub時,它錯誤並且沒有任何日誌。 在線 'mosquitto_sub -t '#' -v --cafile ca.crt -d 客戶mosqsub/17479戴爾發送CONNECT 錯誤:發生TLS錯誤' – datnq

+0

我相信你剛剛錯過了斷「 -p 8883「從您的評論。嘗試使用'openssl s_client -connect :8883 -CAfile ca.crt'來驗證TLS連接是否正常。 – ralight

+0

我檢查連接openssl s_client ...是好的。然後我嘗試訂閱,它有錯誤: 'mosquitto_sub -h戴爾-p 8883 -q 1 -t傳感器/溫度--cafile ca.crt -d' 登錄: '1435304515:OpenSSL的錯誤:錯誤:14094416 :SSL例程:SSL3_READ_BYTES:sslv3警報證書未知 1435304515:OpenSSL錯誤:錯誤:140940E5:SSL例程:SSL3_READ_BYTES:ssl握手失敗 1435304515:客戶端上的套接字錯誤,斷開連接# – datnq

0

請檢查客戶端系統的時間和SSL證書的結束日期,客戶端系統時必須SSL證書的開始時間和結束時間

檢查客戶端系統日期之間是:

date

檢查OpenSSL的證書截止日期:

openssl x509 -enddate -noout -in cacert.pem

0

另一種解決方案...針對[不同]具體原因。

對於錯誤「錯誤:問題設置TLS選項」,一個具體的原因是固定的像這樣:

- 在mosquitto配置文件,所包含的與證書,密鑰,以及文件名CA配置參數線每個文件名後面和行尾字符之前的「空格」字符。

- 移除行尾字符之前的空格,導致錯誤不再出現。

- 蚊子經紀人然後啓動沒有錯誤。