ssl雙向認證

2021-09-07 16:33:46 字數 3484 閱讀 6875

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 協議的版本號,加密演算法的種類,產生的隨機數,以及其他伺服器和客戶端之間通訊所需要的...