mosquitto安裝與配置以及mosquitto-auth-plug安裝、配置及要點記錄

    這兩天研究一下MQTT協議,玩玩物聯網的東西,而後發現mosquitto是個比較著名的服務器端,因此下下來,而後配置玩了幾下,過程當中也遇到一些問題,這裏記錄一下。git

首先進行安裝,這裏採用源碼安裝的方式,很是簡單github

1. 從git複製代碼到服務器上數據庫

git clone https://github.com/eclipse/mosquitto服務器

2. 修改 config.mkeclipse

經過vi找到WITH_SRV 這個而後配置成no,這個目前不曉得幹啥子用,可是這個選擇YES mosquitto-auth-plug 會有問題,plug編譯完成的so配置到配置文件調用會報 undefined symbol ares_library_init 錯誤,查看了一些資料說是缺乏一個庫,可是經過yum方式安裝,而後依舊報錯,因此,這裏直接關掉方便一點。ui

3.而後make & make install 就安裝完畢了this

接下來要解決一些用戶認證的問題加密

mosquitto提供了一種 username/password的方式管理客戶端,可是這個默認是經過文件管理用戶名密碼,並且文件修改還得重啓服務器不是很智能,萬幸,mosquitto也考慮到這一點,提供了鑑權的口給外部,只要按照定義實現就能夠調用本身想要的鑑權方式,這個git上有個一mosquitto-auth-plug 很成熟就決定用這個。支持很是多的數據庫好比 MySQL Redis 還有不少能夠去git上查看,https://github.com/jpmens/mosquitto-auth-plug。ip

mosquitto-auth-plug 的安裝比mosquitto麻煩一點首先看官網安裝一下依賴ssl

安裝完依賴之後就是對config.mk進行修改,默認config.mk是空的,可是目錄下提供了一個模板 config.mk.in 能夠把內容複製進去,而後編輯

首先看到有以下的一句話,這個是配置所須要支持的存儲類型

# Select your backends from this list
BACKEND_CDB ?= no
BACKEND_MYSQL ?= yes
BACKEND_SQLITE ?= no
BACKEND_REDIS ?= no
BACKEND_POSTGRES ?= no
BACKEND_LDAP ?= no
BACKEND_HTTP ?= no
BACKEND_JWT ?= no
BACKEND_MONGO ?= no
BACKEND_FILES ?= no
BACKEND_MEMCACHED ?= no

我這裏選擇的是經典的MySQL方式,

下來就是指定mosquitto源碼位置,配置文件默認給的例子提供的是mac路徑

# Specify the path to the Mosquitto sources here
# MOSQUITTO_SRC = /usr/local/Cellar/mosquitto/1.4.12
MOSQUITTO_SRC = /home/mosquitto/mosquitto

下來指定openSSL的可執行文件所在目路

# Specify the path the OpenSSL here
OPENSSLDIR = /usr/bin

下來的部分就是指定一些庫和頭文件所在的位置,基本上按照註釋說明的來就好了,下面是個人例子

# Specify optional/additional linker/compiler flags here
# On macOS, add
#       CFG_LDFLAGS = -undefined dynamic_lookup
# as described in https://github.com/eclipse/mosquitto/issues/244
#
# CFG_LDFLAGS = -undefined dynamic_lookup  -L/usr/local/Cellar/openssl/1.0.2l/lib
# CFG_CFLAGS = -I/usr/local/Cellar/openssl/1.0.2l/include -I/usr/local/Cellar/mosquitto/1.4.12/include
CFG_LDFLAGS = -L/usr/lib64/openssl/engines/
CFG_CFLAGS = -I/usr/include/openssl/ -I/home/mosquitto_makefile/mosquitto/lib

配置完成後執行make指令,而後就會有一個 auth-plug.so的文件在目錄下生成了,接下來按照 plug的官網給出的配置說明進行配置就行了,這裏特別說明一下,官網底下password給出的示例的加密結果是錯的,害我浪費了很是多的時間。。。,數據庫存儲的密碼加密方式是 PBKDF2WithHmacSHA256 這裏的SHA能夠本身指定。

相關文章
相關標籤/搜索