paho.mqtt.c-master 作客戶端 volantmq 作mqtt伺服器 wss 認證測試
1, 以前go 的wss認證測試都client是 tlsConfig := &tls.Config{InsecureSkipVerify: true, ClientAuth: tls.NoClientCert}
opts.SetTLSConfig(tlsConfig)
即設定了InsecureSkipVerify: true 用於跳過證書認證.
2, 現在因為 paho.mqtt.c-master 暫時不知道哪裡可以設定跳過, 只好來真正認證了.
3, 首先我們來建立我們自己的CA,需要生成一個CA私鑰和一個CA的數字證書:
$openssl genrsa -out ca.key 2048
Generating RSA private key, 2048 bit long modulus
……….+++
………………………….+++
e is 65537 (0×10001)
$openssl req -x509 -new -nodes -key ca.key -subj "/CN=tonybai.com" -days 5000 -out ca.crt
接下來,生成server端的私鑰,生成數字證書請求,並用我們的ca私鑰簽發server的數字證書:
openssl genrsa -out server.key 2048
Generating RSA private key, 2048 bit long modulus
….+++
…………………….+++
e is 65537 (0×10001)
$openssl req -new -key server.key -subj "/CN=localhost" -out server.csr
$openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 5000
Signature ok
subject=/CN=localhost
Getting CA Private Key
現在我們的工作目錄下有如下一些私鑰和證書檔案:
CA:
私鑰檔案 ca.key
數字證書 ca.crt
Server:
私鑰檔案 server.key
數字證書 server.crt
接下來,我們就來完成我們的程式。
4, 將ca.crt 重命令為 lwc_ca.crt
[[email protected] paho.mqtt.c-master]# ./build/output/samples/paho_c_pub -t topicdd -V 31 -P lwc -u lwc --connection wss://192.168.1.40:4444 --cafile lwc_ca.crt
dsfa
123
456789
5,
[[email protected] paho.mqtt.c-master]# ./build/output/samples/paho_c_sub -t topicdd -V 31 -P lwc -u lwc --connection wss://192.168.1.40:4444 --cafile lwc_ca.crt
123
456789
6,
將server.crt 重命令為 cert.crt 將server.key 重命令為 cert.key
mqttserver]# ./main -config config.yaml