ssl雙向認證
ca.key: 根證書的私鑰 ,ca.crt: 根證書的簽名證書
server.key, server.crt
client.key, client.crt
1、openssl-> ca.key,ca.crt
2、openssl-> server.key->server.csrserver.crt
3、openssl-> client.key->client.csrclient.crt
功能設計:
生成server.key -> server.csr ,server.csr +ca.key + ca.crt -> server.crt
第二步,配置 ca.crt, server.key, server.crt 到 mosquito伺服器
第三步,配置 ca.crt, ca.key 到管理控制台,
通過管理控制台生成client.key -> client.csr,client.csr +ca.key + ca.crt -> client.crt, 並
伺服器端: 持有 ca.crt , server.key + server.crt , 如: mosquito
客戶端: 持有 ca.crt , server.key, server.crt , 如:裝置
證書生成端: 持有 ca.crt , ca.key, 如:管理控制台
使用命令為:
openssl req -new -x509 -days 36500 -extensions v3_ca -keyout ca.key -out ca.crt
該命令將為ca產生乙個名字為「ca.key」的key檔案和乙個名字為「ca.crt」的證書檔案,這個crt就是ca自己給自己簽名的證書檔案。
該命令中選項「-x509」表示該條命令將產生自簽名的證書,一般都是測試的時候採用。
命令執行過程中將需要輸入國別、省份(或州)、市、common name等引數,其中」 common name」引數,必須是當前機子的ip位址,使用主機名不行。
使用該ca為server產生證書檔案。
(1)產生金鑰檔案server.key
該命令將產生加密的rsa私鑰,其中引數」-des3」表示對產生的rsa私鑰加密,引數」2048」表示私鑰的長度,這裡產生的私鑰檔案「server.key」將在下一步使用,同時在mosquitto程式的配置檔案中也需要使用。
openssl genrsa -des3 -out server.key 2048
(2)產生證書簽發的請求檔案server.csr
該命令將使用上一步產生的「server.key」檔案為server產生乙個簽發證書所需要的請求檔案:server.csr,使用該檔案向ca傳送請求才會得到ca簽發的證書。
openssl req -out server.csr -key server.key -new
同樣該過程需要注意common name引數需要填寫當前主機的ip位址。
(3)為mosquitto server產生證書檔案:server.crt
命令:openssl x509 -req -in server.csr -ca ca.crt -cakey ca.key -cacreateserial -out server.crt -days 36500
這一步將需要輸入ca的密碼。該命令將使用ca的金鑰檔案ca.key,ca的證書檔案ca.crt和上一步為mosquitto server產生證書請求檔案server.csr檔案這三個檔案向ca請求產生乙個證書檔案,證書檔案的名字為:server.crt。
該過程與1.2類似。
(1) 產生金鑰檔案client.key
openssl genrsa -out client.key 2048
(2) 產生乙個簽發證書的請求檔案"client.csr"
openssl req -out client.csr -key client.key -new
產生證書請求檔案時需要第一步產生的私鑰檔案client.key作為輸入。
(3)ca為mosquitto客戶端產生乙個證書檔案」client.crt」
openssl x509 -req -in client.csr -ca ca.crt -cakey ca.key -cacreateserial -out client.crt -days 36500
三、配置使用
1.1修改mosquitto配置檔案
為了使用ssl功能mosquito的配置檔案mosquitto.conf需要修改以下四個地方:
(1)port
(2)修改cafile引數,該引數表示ca的證書檔案的位置,需將其設定為正確的位置,例如下圖所示
1.2啟動mosquitto server
使用修改後的配置檔案啟動mosquitto程式,上面修改的配置檔案的路徑,在mosquitto目錄下,因此需要用-c引數指定其位置。
mosquitto -c mosquitto.conf -v
配置如下:
注意:不需要填寫使用者名稱和密碼,可以連線成功。
1、 注意事項
(1) 製作簽發證書的請求檔案時,需要輸入common name引數,此引數一定為當前主機的ip位址,否則將會顯示證書錯誤。
(2) 如果不想ssl在身份認證的時候檢查主機名(也即上面不檢查第1條中common name引數),則需要在啟動訂閱端的時候,加上「--insecure」引數,例如:
./mosquitto_sub -h 192.168.4.223 -i 111 -p 8883 -t "111" --cafile/home/jason.hou/ssl/ca.crt --cert /home/jason.hou/ssl/client.crt --key/home/jason.hou/ssl/client.key –insecure
(3)自測過程中,server端與所有客戶端所使用的證書必須由同乙個ca簽發,否則,將會提示ca不識別的問題。
SSL單向 雙向認證
引用 http cbwdkpl.blog.163.com blog static 453293822009814111320789 單向認證 客戶端向伺服器傳送訊息,伺服器接到訊息後,用伺服器端的金鑰庫中的私鑰對資料進行加密,然後把加密後的資料和伺服器端的公鑰一起傳送到客戶端,客戶端用伺服器傳送來的...
SSL認證 單向認證與雙向認證
ssl協議即用到了對稱加密也用到了非對稱加密 公鑰加密 在建立傳輸鏈路時,ssl首先對對稱加密的金鑰使用非對稱加密,鏈路建立好之後,ssl對傳輸內容使用對稱加密。對稱加密 速度高,可加密內容較大,用來加密會話過程中的訊息 公鑰加密 加密速度較慢,但能提供更好的身份認證技術,用來加密對稱加密的金鑰 1...
SSL單向 雙向認證詳解
這篇文章是以前在網上看到的,之後自己儲存到筆記本裡面了,最近不太愛用筆記本了,就把這篇文章貼到這裡吧,沒有去找原文章的鏈結,如有冒犯請見諒。單向認證 ssl 協議的具體過程 客戶端的瀏覽器向伺服器傳送客戶端 ssl 協議的版本號,加密演算法的種類,產生的隨機數,以及其他伺服器和客戶端之間通訊所需要的...