CA證書管理
云消息隊列 MQTT 版支持使用設備證書進行客戶端的接入認證,CA證書可用于簽發設備證書、服務器證書和驗證證書,客戶端使用設備證書進行認證時,服務端將使用設備證書關聯的CA證書來驗證設備證書是否正確,CA證書必須在云消息隊列 MQTT 版服務端注冊后才能用于驗證設備證書。
背景信息
客戶端使用設備證書進行認證時,服務端將使用設備證書關聯的CA證書來驗證設備證書是否正確,CA證書必須在云消息隊列 MQTT 版服務端注冊后才能用于驗證設備證書。
注冊CA證書即將CA證書信息上傳至云消息隊列 MQTT 版服務端,并將CA證書與指定實例進行綁定。實例和CA證書的關系如下:
一個實例可注冊多個CA證書。
一個CA證書可被注冊給多個實例。
使用限制
僅鉑金版實例和專業版實例支持CA證書管理功能。
您獲取的CA證書的SN序列號必須唯一。
CA證書的SN碼不能超過128 Byte。
CA證書支持RSA、ECC算法。
前提條件
已安裝OpenSSL v1.1.1i或以上版本。
自簽CA證書
您可直接向可信機構購買簽發的CA證書,也可通過自簽名生成私有的CA證書,本操作以OpenSSL為例為您介紹如何生成自簽名CA證書。
下載并安裝OpenSSL
- 說明
安裝完成后,如使用Windows系統需要將OpenSSL的安裝目錄的bin子目錄添加到您的系統PATH環境變量中。
打開命令提示符。
RSA算法證書
執行如下命令,生成私有RSA CA證書的私鑰。
openssl genrsa -out CA.key 2048
執行如下命令,使用CA證書私鑰創建私有CA的CSR文件。
openssl req -new -key CA.key -out CA.csr
界面返回如下示例,請根據提示輸入對應參數。
Country Name (2 letter code) [AU]: State or Province Name (full name) []: Locality Name (for example, city) []: Organization Name (for example, company) []: Organizational Unit Name (for example, section) []: Common Name (e.g. server FQDN or YOUR name) []: Email Address []:
執行如下命令,生成自簽名的RSA CA證書
CA.crt
,請根據操作系統選擇對應的執行命令,在不同操作系統中,extfile的位置有所不同。Mac
openssl x509 -req -extfile /System/Library/OpenSSL/openssl.cnf -extensions v3_ca -in CA.csr -out CA.crt -signkey CA.key -CAcreateserial -days 3650
CentOS
openssl x509 -req -extfile /etc/pki/tls/openssl.cnf -extensions v3_ca -in CA.csr -out CA.crt -signkey CA.key -CAcreateserial -days 3650
Windows
openssl x509 -req -extfile C:\Progra~1\OpenSSL-Win64\bin\cnf\openssl.cnf -extensions v3_ca -in CA.csr -out CA.crt -signkey CA.key -CAcreateserial -days 3650
查看生成的RSA CA證書。
執行如下命令:
openssl x509 -in CA.crt -text
ECC算法證書
執行如下命令,生成私有ECC CA證書的私鑰。
openssl ecparam -genkey -name prime256v1 -out CA.key
執行如下命令,生成自簽名的ECC CA證書
CA.crt
。Mac
openssl req -new -x509 -days 3650 -config /System/Library/OpenSSL/openssl.cnf -extensions v3_ca -key CA.key -out CA.crt
CentOS
openssl req -new -x509 -days 3650 -config /etc/pki/tls/openssl.cnf -extensions v3_ca -key CA.key -out CA.crt
Windows
openssl req -new -x509 -days 3650 -config C:\Progra~1\OpenSSL-Win64\bin\cnf\openssl.cnf -extensions v3_ca -key CA.key -out CA.crt
說明此步驟如有報錯請檢查命令中的openssl.cnf文件路徑是否正確。
界面返回如下示例,請根據提示輸入對應參數。
Country Name (2 letter code) [AU]: State or Province Name (full name) []: Locality Name (for example, city) []: Organization Name (for example, company) []: Organizational Unit Name (for example, section) []: Common Name (e.g. server FQDN or YOUR name) []: Email Address []:
執行如下命令,查看生成的ECC CA證書。
openssl x509 -in CA.crt -text
注冊CA證書
CA證書注冊后,默認為激活狀態。
獲取CA證書的注冊碼。
登錄云消息隊列 MQTT 版控制臺,并在左側導航欄單擊實例列表。
在頂部菜單欄選擇目標地域,然后在實例列表中單擊目標實例名稱進入實例詳情頁面,并在左側導航欄選擇 。
在CA證書頁面單擊注冊證書。
在彈出的面板中即可獲取CA證書的注冊碼。
創建CA證書的驗證證書。
若您需要將CA證書注冊到云消息隊列 MQTT 版服務端,需要證明您有該CA證書的私鑰。因此您需要使用CA證書創建一個驗證證書,并在創建時填寫云消息隊列 MQTT 版提供的注冊碼,系統會根據您創建的驗證證書和注冊碼判斷您是否可以使用該CA證書。
RSA算法證書
執行如下命令,生成驗證證書的私鑰。
openssl genrsa -out verificationCert.key 2048
執行如下命令,生成驗證證書的CSR文件。
openssl req -new -key verificationCert.key -out verificationCert.csr
界面返回如下示例,請根據提示輸入對應參數。
Country Name (2 letter code) [AU]: State or Province Name (full name) []: Locality Name (for example, city) []: Organization Name (for example, company) []: Organizational Unit Name (for example, section) []: Common Name (e.g. server FQDN or YOUR name) []:i29adsjfp29jfj92jlajsdf****** Email Address []:
重要其中
CommonName
必須輸入,請替換為您在步驟1中獲取的CA證書的注冊碼,其他參數為可選。執行如下命令,生成CA證書的驗證證書
verificationCert.crt
。openssl x509 -req -in verificationCert.csr -CA CA.crt -CAkey CA.key -CAcreateserial -out verificationCert.crt -days 300 -sha512
說明如果不是自簽名的CA證書,可以將生成的CSR證書簽名請求文件提交給證書頒發機構,由證書頒發機構生成證書。
ECC算法證書
執行如下命令,生成驗證證書的私鑰。
openssl ecparam -out verificationCert.key -name prime256v1 -genkey
執行如下命令,生成驗證證書的CSR文件。
openssl req -new -key verificationCert.key -out verificationCert.csr
界面返回如下示例,請根據提示輸入對應參數。
Country Name (2 letter code) [AU]: State or Province Name (full name) []: Locality Name (for example, city) []: Organization Name (for example, company) []: Organizational Unit Name (for example, section) []: Common Name (e.g. server FQDN or YOUR name) []:i29adsjfp29jfj92jlajsdf****** Email Address []:
重要其中
CommonName
必須輸入,請替換為您在步驟1中獲取的CA證書的注冊碼,其他參數為可選。執行如下命令,生成CA證書的驗證證書
verificationCert.crt
。openssl x509 -req -in verificationCert.csr -CA CA.crt -CAkey CA.key -CAcreateserial -out verificationCert.crt -days 300 -sha512
說明如果不是自簽名的CA證書,可以將生成的CSR證書簽名請求文件提交給證書頒發機構,由證書頒發機構生成證書。
上傳CA證書
CA.crt
和驗證證書verificationCert.crt
。在CA證書頁面單擊注冊證書。
在彈出的注冊CA證書面板中,分別單擊上傳驗證證書和上傳CA證書,按提示上傳CA證書和驗證證書,然后單擊確定。
下載CA證書
您可以將CA證書下載到本地進行備份或查看其詳細信息。
在CA證書列表中,選擇目標CA證書,在其操作列單擊下載。
查詢CA證書
查詢所有CA證書
在CA證書頁面,證書列表中展示該實例下所有注冊的CA證書。
精確查詢CA證書
在CA證書列表上方的輸入框中,輸入指定CA證書的SN序列號,然后單擊搜索。
查詢CA證書下的設備證書
在CA證書列表中,選擇目標CA證書,在其操作列單擊設備證書。
頁面將自動跳轉到設備證書,且列表中展示目標CA證書所簽發且已注冊的所有設備證書。
激活或注銷CA證書
您可以通過激活和注銷改變CA證書的生效狀態。證書狀態包含激活和未激活。CA證書在服務端注冊后默認為激活狀態。
注銷CA證書,會將其簽發的且在服務端注冊的所有設備證書一起注銷;同樣激活CA證書也會將其簽發的設備證書一起激活。
證書為激活狀態:若您需要臨時禁用某個證書,可以將該證書注銷,注銷后證書不可用。
證書為未激活狀態:若您要恢復某個證書,可以將該證書重新激活。
在CA證書列表中,選擇目標CA證書,在其操作列單擊注銷或激活。
刪除CA證書
刪除CA證書表示將指定的CA證書信息及其簽發的所有設備證書信息從服務端的存儲記錄中全部刪除,并非將證書內容直接刪掉。刪除后CA證書和其簽發的設備證書都將無法用于認證,重新注冊后才能繼續使用。
在CA證書列表中,選擇目標CA證書,在其操作列單擊刪除。
在彈出的提示對話框中單擊確定。