說明替換證書將重啟實例,請謹慎操作。
前提條件
- 已準備一臺Linux系統的服務器。
- 實例已開啟Kafka SASL_SSL。
步驟一:制作證書
步驟 1 登錄Linux系統的(de)服務器,執行以下(xia)命(ming)令,生成server.keystore.jks證書的(de)孵化(hua)器。
keytool -genkey -keystore server.keystore.jks -alias localhost -validity 3650 -keyalg RSA
按照提示信息輸入keystore密碼。密碼需要滿足如下要求(qiu):
- 8~32個字符。
- 至少包含以下字符中的3種:大寫字母、小寫字母、數字、特殊字符`~!@#$%^&*()-_=+|[{}]:'",<.>/?和空格,并且不能以-開頭。
- 非弱密碼(如果不能確定哪些是弱密碼,請在替換證書對話框中輸入密碼,系統會自動判定是否為弱密碼)。
按照提示信息輸入(ru)證書(shu)擁有者的信息,如姓(xing)名、單位(wei)、所(suo)在城市(shi)等(deng)。
步(bu)驟(zou) 2 執行(xing)以下(xia)命(ming)令,創建CA的認證證書。
openssl req -new -x509 -keyout ca-key -out ca-cert -days 3650
按照提示(shi)信息(xi)輸入PEM密碼。
按照提示(shi)信息輸入(ru)證書擁有(you)者(zhe)的信息。
步驟(zou) 3 執行以(yi)(yi)下命令,通過CA創(chuang)建一個服(fu)務器的Truststore證(zheng)(zheng)書,有了Truststore證(zheng)(zheng)書才可以(yi)(yi)進(jin)行證(zheng)(zheng)書有效性的檢測(ce)。
keytool -keystore server.truststore.jks -alias CARoot -import -file ca-cert
按照提(ti)示信息輸(shu)入(ru)服務器證書的Truststore密碼(ma)。密碼(ma)需要滿足如下要求:
- 8~32個字符。
- 至少包含以下字符中的3種:大寫字母、小寫字母、數字、特殊字符`~!@#$%^&*()-_=+|[{}]:'",<.>/?和空格,并且不能以-開頭。
- 非弱密碼(如果不能確定哪些是弱密碼,請在替換證書對話框中輸入密碼,系統會自動判定是否為弱密碼)。
出現如下提示信息時,輸(shu)入“y”。
Trust this certificate?
步驟 4 執行以下命令,通過CA創建一個客戶端的Truststore證(zheng)書。
keytool -keystore client.truststore.jks -alias CARoot -import -file ca-cert
按照(zhao)提示(shi)信息輸(shu)入客戶(hu)端證(zheng)書(shu)的(de)Truststore密碼。此密碼用(yong)于客戶(hu)端連接Kafka實例(li)時,配置文件中(zhong)“ssl.truststore.password”參數(shu)的(de)值。
出現(xian)如下提示信(xin)息時,輸(shu)入“y”。
Trust this certificate?
步驟 5 執行以(yi)下命令,為服務(wu)器證書簽名。
- 導出服務器證書“server.cert-file”。
keytool -keystore server.keystore.jks -alias localhost -certreq -file server.cert-f
按照(zhao)提示信息輸入步驟1中設置的keystore密碼。
- 通過CA給服務器證書進行簽名處理。
openssl x509 -req -CA ca-cert -CAkey ca-key -in server.cert-file -out server.cert-signed -days 3650 -CAcreateserial
按(an)照提示信息輸入步驟2中(zhong)設置的PEM密(mi)碼。
- 將CA證書導入到服務器keystore。
keytool -keystore server.keystore.jks -alias CARoot -import -file ca-cert
按照(zhao)提示(shi)信(xin)息輸入步驟1中設(she)置(zhi)的(de)keystore密碼。
出現如(ru)下(xia)提示信(xin)息(xi)時,輸入“y”。
Trust this certificate?
- 將已簽名的服務器證書導入到服務器keystore。
keytool -keystore server.keystore.jks -alias localhost -import -file server.cert-signed
按照提示信息輸入步驟1中設(she)置的keystore密碼(ma)。
步驟 6 導出證(zheng)書“server.keystore.jks”和“server.truststore.jks”到本地PC機。
圖 證書目錄


步驟二:替換證書
步驟 1 登錄管理控制臺。
步驟 2 在管理控制臺右上角單擊
,選擇區域。
說明此處請選擇與您的應用服務相同的區域。
步驟 3 在管理控制臺左上角單擊
,選(xuan)擇“企業(ye)中間件”-“分布式消息(xi)服務”-“Kafka專享版”,進(jin)入分布式消息(xi)服務Kafka專享版頁面。
步驟 4 單擊待(dai)替換證書(shu)的實(shi)例名稱,進入實(shi)例詳情(qing)頁面。
步驟 5 在“連接信息 > SSL證書(shu)”后,單擊“替(ti)換(huan)”,彈(dan)出(chu)“替(ti)換(huan)SSL證書(shu)”對話框。
圖 連接信息


步驟 6 參考下表,設置替(ti)換(huan)SSL證(zheng)書的參數。
圖 替換SSL證書


表 替(ti)換SSL證書參數說明(ming)
| 參數名稱 | 說明 |
|---|---|
| Key密碼 | 輸入制作證書中設置的keystore密碼 |
| Keystore密碼 | 輸入制作證書中設置的keystore密碼 |
| Keystore文件 | 導入“server.keystore.jks”證書 |
| Truststore密碼 | 輸入服務端證書的Truststore密碼 |
| Truststore文件 | 導入“server.truststore.jks”證書 |
步驟 7 單擊“確定”,彈出“替換SSL證(zheng)書”對話框。
步驟 8 單擊“確(que)認”,完(wan)成證書的替換。
在“后臺任務管理”頁簽,替換SSL證書任務的“狀態”為“成功(gong)”時,表示替換證書成功(gong)。
說明證書替換成功后,在實例詳情頁單擊“下載”,下載的證書為分布式消息服務Kafka提供的證書,并非您自己制作的證書。
步驟三:修改客戶端配置文件
替換證書后(hou),需要(yao)在客戶(hu)端的“consumer.properties”和(he)“producer.properties”文件中(zhong),分別修改(gai)“ssl.truststore.location”和(he)“ssl.truststore.password”參數。
security.protocol=SASL_SSL
ssl.truststore.location=/opt/kafka_2.11-2.3.0/config/client.truststore.jks
ssl.truststore.password=dms@kafka
ssl.endpoint.identification.algorithm=
- ssl.truststore.location配置為client.truststore.jks證書的存放路徑。
- ssl.truststore.password為客戶端證書的Truststore密碼。
- ssl.endpoint.identification.algorithm為證書域名校驗開關,為空則表示關閉。這里需要 保持關閉狀態,必須設置為空 。