日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

使用Openssl制作自簽證書,并應用于自己MQTT服務器通訊

 

為什么要使用ssl加密通訊

隨著互聯網快速發展,網絡安全越來越得到人們的關注。誰都不想自己的數據被人竊聽或利用,而當我們直接使用TCP連接一個服務器通訊時,此時是明文傳輸的,很容易使用抓包工具(如wireshark)抓取我們的數據包,從而分析出相關的數據。比如我們直接登陸mqtt服務器,數據報文中就包括了登陸賬號,密碼,ClientID等等信息,如果“壞人”捕捉到這些信息,那他就可以連接我們的服務器,顯然這不是我們想要的結果。

使用Openssl制作自簽證書,并應用于自己MQTT服務器通訊

 

SSL就是解決其問題的一種方案。即我們可以在我們的應用程(HTTP, MQTT, FTP)與傳輸層(這里主要是TCP)之間加一級SSL加密傳輸。細心的小伙伴可以發現現在絕大多數的網站都已經采用了這種方式加密通信,從以前的http悄悄的變成了https咯~

使用Openssl制作自簽證書,并應用于自己MQTT服務器通訊

 

證書和SSL的關系

使用Openssl制作自簽證書,并應用于自己MQTT服務器通訊

 

證書其實是SSL中通訊過程基本保障,用來驗證服務器或客戶端是否是可信任的(這里大家可以聯想下我們在銀行辦理網上銀行時,通常銀行會給我們一個類似“K寶”的小東西,其作用就是客戶端證書,當我們登陸銀行網站交易時,網站會驗證我們是否可信任,否則不允許登陸或后續交易操作)。且公證的證書(證書機構頒發的,如CA機構)有效的防止他人仿造,保障了通訊過程的安全。而這里我們自己制作的自簽證書,僅供自己使用,并不是公認的。好了,暫時先說這么多。OK,開始進入我們的主題。

使用Openssl制作自簽證書,并應用于自己MQTT服務器通訊

 

實踐操作

這里需要我們的測試環境的Ubuntu系統,已經默認安裝Openssl了,如果大家沒裝的話,可以使用apt-get install openssl相關命令安裝即可。

1. 生成CA私鑰。 這里我們自己“假裝”是CA機構,當然需要CA證書,私鑰拉,不然咋給其他人辦理業務勒~

openssl genrsa -out ca-key.pem 1024
使用Openssl制作自簽證書,并應用于自己MQTT服務器通訊

 

2. 創建證書請求。 證書請求是生成證書必要過程,請求中就包含了所屬城市,單位,機構,組織,公共名等等信息。

openssl req -new -out ca-req.csr -key ca-key.pem
使用Openssl制作自簽證書,并應用于自己MQTT服務器通訊

 

3. 自簽署(CA)證書,也叫根證書。之后就可以給“其他人”辦理業務咯。

openssl x509 -req -in ca-req.csr -out ca-cert.pem -signkey ca-key.pem -days 3650
使用Openssl制作自簽證書,并應用于自己MQTT服務器通訊

 


以下是生成服務器證書過程,其實過程和以上生成CA證書完全一樣。

4. 生成服務器私鑰

openssl genrsa -out server-key.pem 1024   
使用Openssl制作自簽證書,并應用于自己MQTT服務器通訊

 

5. 生成服務器證書請求文件

openssl req -new -out server-req.csr -key server-key.pem
使用Openssl制作自簽證書,并應用于自己MQTT服務器通訊

 

注意: 在Common Name必須填寫自己的服務器IP地址(或域名)。

  1. 將請求文件給CA 機構(這里是俺們自己~)生成服務器證書
openssl x509 -req -in server-req.csr -out server-cert.pem -signkey server-key.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -days 3650
使用Openssl制作自簽證書,并應用于自己MQTT服務器通訊

 


以下是生成客戶端證書過程:

7. 生成客戶端私鑰

openssl genrsa -out client-key.pem 1024   
使用Openssl制作自簽證書,并應用于自己MQTT服務器通訊

 

8. 生成證書請求

openssl req -new -out client-req.csr -key client-key.pem
使用Openssl制作自簽證書,并應用于自己MQTT服務器通訊

 

9. 自簽署證書

openssl x509 -req -in client-req.csr -out client-cert.pem -signkey client-key.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -days 3650
使用Openssl制作自簽證書,并應用于自己MQTT服務器通訊

 


OK, 到這里我們已經完成了服務器和客戶端的證書(完全是個體力活 - -!), 接下來我們就利用我們生成的證書應用于實踐中,這里我們采用EMQ(MQTT服務器,如果小伙伴不清楚如何搭建自己MQTT客戶端的話,可以我參考我前幾篇的文章的介紹,這里就不再贅述) + mqttfx(MQTT客戶端)方式來測試。

10. 拷貝生成服務器證書(server-cert.pem)和私鑰(server-key.pem),到emq工作目錄下的/emqx/etc/certs/中,

cp server-cert.pem server-key.pem  ../emqx/etc/certs/
使用Openssl制作自簽證書,并應用于自己MQTT服務器通訊

 

11. 打開emqx/etc中的emqx.conf配置文件

使用Openssl制作自簽證書,并應用于自己MQTT服務器通訊

 

找到
listerner.ssl.external.keyfile 
listener.ssl.external.certfile這2個參數:

使用Openssl制作自簽證書,并應用于自己MQTT服務器通訊

 

這里我們可以看到默認值與我們生成的名字對不上,我們可以直接更改emqx.conf配置文件中的值與我們的一致, 另外我們也可以保持emqx.conf文件不變,修改我們制作的證書和私鑰名字,與之一樣(這里我們采用該種方式,盡量保持emqx原生文件不變)。使用mv命令修改:

mv server-cert.pem cert.pem
mv server-key.pem key.pem
使用Openssl制作自簽證書,并應用于自己MQTT服務器通訊

 

12. 將Ubuntu中制作的CA和客戶端相關證書,密鑰拷貝到windows中(這是因為之后我們要利用Windows中的mqttfx客戶端測試)。

cp c* /mnt/hgfs/winshare/my_cert/                //winshare是我的Ubuntu和Windows共享文件夾
使用Openssl制作自簽證書,并應用于自己MQTT服務器通訊

 

13. 打開mqttfx客戶端

使用Openssl制作自簽證書,并應用于自己MQTT服務器通訊

 

首先點擊“User Creentials”設置服務器地址,端口號(emq加密ssl端口默認為8883),登陸用戶名,密碼(如果emq關閉匿名登陸則必須填寫正確的用戶名和密碼,如果打開匿名登陸,則可以不管)等信息。

使用Openssl制作自簽證書,并應用于自己MQTT服務器通訊

 

然后點擊1)“SSL/TLS”, 進行相關配置:

2)勾選"Enable SSL/TLS"

3) 勾選“Self signed certificates”

4)分別加載我們之前生成的CA證書,客戶端證書,客戶端私鑰

5)勾選“PEM Formatted”

使用Openssl制作自簽證書,并應用于自己MQTT服務器通訊

 

設置完以上,點擊“Apply”或OK,回到主界面,點擊“Connect”連接我們Ubuntu中emq服務器

使用Openssl制作自簽證書,并應用于自己MQTT服務器通訊

 

之后,我們就可以放心與服務器加密通訊咯。

最后

至此我們已經實現了搭建自己的MQTT服務器,以及加密通訊,為我們之后智能設備對接服務器,進行遠程控制做好準備工作。如果小伙伴對如何搭建MQTT服務器不熟悉的話,可以參考我的這篇文章物聯網之MQTT服務器搭建。因為考慮篇幅,今天很籠統說了下ssl和證書,并沒有很詳細的鋪開講述, 這篇文章注重實踐操作,如果小伙伴對證書的產生的原由感興趣,歡迎留言,后續我可以補一篇理論文章。 好了,今天的分享至此,歡迎小伙伴關注,收藏,轉發喲~

分享到:
標簽:證書
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定