1. 程式人生 > >paho.mqtt.c-master 作客戶端 volantmq 作mqtt伺服器 wss 認證測試

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