整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          EMQ X MQTT 服務器啟用 SSL/TLS 安全連接

          作為基于現代密碼學公鑰算法的安全協議,TLS/SSL 能在計算機通訊網絡上保證傳輸安全,EMQ X 內置對 TLS/SSL 的支持,包括支持單/雙向認證、X.509 證書、負載均衡 SSL 等多種安全認證。你可以為 EMQ X 支持的所有協議啟用 SSL/TLS,也可以將 EMQ X 提供的 HTTP API 配置為使用 TLS。本文將介紹如何在 EMQ X 中為 MQTT 啟用 TLS。

          SSL/TLS 帶來的安全優勢 SSL/TLS 協議

          TLS/SSL 協議下的通訊過程分為兩部分,第一部分是握手協議。握手協議的目的是鑒別對方身份并建立一個安全的通訊通道。握手完成之后雙方會協商出接下來使用的密碼套件和會話密鑰;第二部分是 record 協議,record 和其他數據傳輸協議非常類似,會攜帶內容類型,版本,長度和荷載等信息,不同的是它所攜帶的信息是加密了的。

          下面的圖片描述了 TLS/SSL 握手協議的過程,從客戶端的 “hello” 一直到服務器的 “” 完成握手。有興趣的同學可以找更詳細的資料看。對這個過程不了解也并不影響我們在 EMQ X 中啟用這個功能。

          在這里插入圖片描述

          SSL/TLS 證書準備

          通常來說,我們會需要數字證書來保證 TLS 通訊的強認證。數字證書的使用本身是一個三方協議,除了通訊雙方,還有一個頒發證書的受信第三方,有時候這個受信第三方就是一個 CA。和 CA 的通訊,一般是以預先發行證書的方式進行的。也就是在開始 TLS 通訊的時候,我們需要至少有 2 個證書,一個 CA 的,一個 EMQ X 的,EMQ X 的證書由 CA 頒發,并用 CA 的證書驗證。

          獲得一個真正受外界信任的證書需要到證書服務提供商進行購買。在實驗室環境,我們也可以用自己生成的證書來模擬這個過程。下面我們分別以這兩種方式來說明 EMQ X 服務器的 SSL/TLS 啟用過程。

          注意: 購買證書與自簽名證書的配置,讀者根據自身情況只需選擇其中一種進行測試。

          購買證書

          如果有購買證書的話,就不需要自簽名證書。

          為方便 EMQ X 配置,請將購買的證書文件重命名為 emqx.crt,證書密鑰重命名為 emqx.key。

          自簽名證書

          在這里,我們假設您的系統已經安裝了 OpenSSL。使用 OpenSSL 附帶的工具集就可以生成我們需要的證書了。

          首先,我們需要一個自簽名的 CA 證書。生成這個證書需要有一個私鑰為它簽名,可以執行以下命令來生成私鑰:

          openssl genrsa -out my_root_ca.key 2048
          

          這個命令將生成一個密鑰長度為 2048 的密鑰并保存在 .key 中。有了這個密鑰,就可以用它來生成 EMQ X 的根證書了:

          openssl req -x509 -new -nodes -key my_root_ca.key -sha256 -days 3650 -out my_root_ca.pem
          

          根證書是整個信任鏈的起點,如果一個證書的每一級簽發者向上一直到根證書都是可信的,那個我們就可以認為這個證書也是可信的。有了這個根證書,我們就可以用它來給其他實體簽發實體證書了。

          實體(在這里指的是 EMQ X)也需要一個自己的私鑰對來保證它對自己證書的控制權。生成這個密鑰的過程和上面類似:

          openssl genrsa -out emqx.key 2048
          

          新建 f 文件,

          [req]
          default_bits  = 2048
          distinguished_name = req_distinguished_name
          req_extensions = req_ext
          x509_extensions = v3_req
          prompt = no
          [req_distinguished_name]
          countryName = CN
          stateOrProvinceName = Zhejiang
          

          找不到安全證書_顯示安全證書_您的安全工具沒有ca安全證書

          localityName = Hangzhou organizationName = EMQX commonName = Server certificate [req_ext] subjectAltName = @alt_names [v3_req] subjectAltName = @alt_names [alt_names] IP.1 = BROKER_ADDRESS DNS.1 = BROKER_ADDRESS

          然后以這個密鑰和配置簽發一個證書請求:

          openssl req -new -key ./emqx.key -config openssl.cnf -out emqx.csr
          

          然后以根證書來簽發 EMQ X 的實體證書:

          openssl x509 -req -in ./emqx.csr -CA my_root_ca.pem -CAkey my_root_ca.key -CAcreateserial -out emqx.pem -days 3650 -sha256 -extensions v3_req -extfile openssl.cnf
          

          準備好證書后,我們就可以啟用 EMQ X 的 TLS/SSL 功能了。

          SSL/TLS 啟用及驗證

          在 EMQ X 中 mqtt:ssl 的默認監聽端口為 8883。

          購買證書方式 EMQ X 配置

          將前文重命名后的 emqx.key 文件及 emqx.crt 文件拷貝到 EMQ X 的 etc/certs/ 目錄下,并參考如下配置修改 emqx.conf:

          ## listener.ssl.$name is the IP address and port that the MQTT/SSL
          ## Value: IP:Port | Port
          listener.ssl.external = 8883
          ## Path to the file containing the user's private PEM-encoded key.
          ## Value: File
          listener.ssl.external.keyfile = etc/certs/emqx.key
          ## Path to a file containing the user certificate.
          ## Value: File
          listener.ssl.external.certfile = etc/certs/emqx.crt
          

          MQTT 連接測試

          顯示安全證書_找不到安全證書_您的安全工具沒有ca安全證書

          當配置完成并重啟 EMQ X 后,我們使用 MQTT 客戶端工具 - MQTT X(該工具跨平臺且支持 MQTT 5.0),來驗證 TLS 服務是否正常運行。

          MQTT X 版本要求:v1.3.2 及以上版本

          在這里插入圖片描述

          注意:在 一欄只需選擇 CA signed server 即可,使用購買證書在進行單向認證連接時不需要攜帶任何證書文件(CA 文件也不需要攜帶)。

          在這里插入圖片描述

          自簽名證書方式 EMQ X 配置

          將前文中通過 OpenSSL 工具生成的 emqx.pem、emqx.key 及 .pem 文件拷貝到 EMQ X 的 etc/certs/ 目錄下,并參考如下配置修改 emqx.conf:

          ## listener.ssl.$name is the IP address and port that the MQTT/SSL
          ## Value: IP:Port | Port
          listener.ssl.external = 8883
          ## Path to the file containing the user's private PEM-encoded key.
          ## Value: File
          listener.ssl.external.keyfile = etc/certs/emqx.key
          ## Path to a file containing the user certificate.
          ## Value: File
          listener.ssl.external.certfile = etc/certs/emqx.pem
          ## Path to the file containing PEM-encoded CA certificates. The CA certificates
          ## Value: File
          listener.ssl.external.cacertfile = etc/certs/my_root_ca.pem
          

          MQTT 連接測試

          當配置完成并重啟 EMQ X 后,我們使用 MQTT 客戶端工具 - MQTT X(該工具跨平臺且支持 MQTT 5.0),來驗證 TLS 服務是否正常運行。

          MQTT X 版本要求:v1.3.2 及以上版本

          在這里插入圖片描述

          此時 一欄需要選擇 Self signed ,并攜帶自簽名證書中生成的 .pem 文件。

          在這里插入圖片描述

          EMQ X 驗證

          最后,打開 EMQ X 的 在 頁面可以看到在 8883 端口上有一個 mqtt:ssl 連接。

          在這里插入圖片描述

          至此,我們成功的完成了 EMQ X 服務器的 SSL/TLS 配置及單向認證連接測試。EMQ X SSL/TLS 雙向認證配置文檔請關注我們的后續文章。


          主站蜘蛛池模板: 蜜桃无码AV一区二区| 国产乱人伦精品一区二区| 成人区人妻精品一区二区不卡视频| 日韩精品人妻一区二区三区四区| 亚洲第一区在线观看| 久久久久人妻一区二区三区vr| 美女视频一区二区| 在线不卡一区二区三区日韩| 久久久久99人妻一区二区三区| 中文字幕一区在线观看| 精品不卡一区中文字幕| 亚洲国产欧美一区二区三区| 色狠狠色狠狠综合一区| 色窝窝无码一区二区三区成人网站| 久久久不卡国产精品一区二区| 国产激情一区二区三区在线观看 | 成人精品一区二区三区中文字幕| 日本一区二区三区在线观看视频| 亚洲一本一道一区二区三区| 精品视频一区二区三三区四区| 国产一区二区在线视频| 免费萌白酱国产一区二区三区| 亚洲一区无码精品色| 亚洲视频在线一区二区| 国产福利电影一区二区三区,亚洲国模精品一区 | 香蕉久久一区二区不卡无毒影院| 中文无码精品一区二区三区| 亚洲国产av一区二区三区| 视频在线观看一区二区三区| 日本视频一区二区三区| 亚洲AV无码一区二区三区国产 | 国产伦精品一区二区免费| 亚洲Aⅴ无码一区二区二三区软件| 国产免费一区二区三区免费视频| 国产91精品一区二区麻豆亚洲| 久久一区二区免费播放| 久久一区二区精品| 亚洲av无码一区二区三区天堂| 国精产品一区一区三区有限在线| 国产一区二区三区播放| 大伊香蕉精品一区视频在线|