您可以根據安全需求調整您非Serverless執行個體的SSL認證演算法位元。
前提條件
您已購買雲訊息佇列 Kafka 版公網執行個體,且執行個體處於服務中狀態。
背景資訊
您的執行個體開啟公網時,會啟動SSL相關的連接埠,在雲訊息佇列 Kafka 版控制台的配置信息頁面可以看到SSL認證演算法位元。請根據您的安全需求按需選擇是否升級,如果需要升級可以通過以下方案將執行個體的SSL認證演算法位元升級至4096。
僅在雲訊息佇列 Kafka 版的執行個體配置資訊頁面修改SSL認證演算法位元,將會導致用戶端無法使用,升級前請按照操作步驟下載新版認證,修改用戶端認證配置後重啟。
若您的執行個體為Serverless執行個體,當開啟公網時,使用的SSL認證演算法位元預設為4096位,不支援變更。
SSL認證下載
執行個體尚未被部署:Java語言請下載only.4096.client.truststore.jks,其他語言請在SDK列表中下載對應語言的only-4096-ca-cert。
執行個體已部署且執行個體的SSL認證演算法位元為1024:Java語言請下載kafka.client.truststore.jks,其他語言請在SDK列表中下載對應語言的ca-cert.pem。
執行個體已部署且執行個體的SSL認證演算法位元需要從1024升級至4096:Java語言請下載mix.4096.client.truststore.jks,其他語言請在SDK列表中下載對應語言的mix-4096-ca-cert。mix.4096.client.truststore.jks和mix-4096-ca-cert同時包含1024位和4096位的SSL認證,無論服務端是1024位還是4096位,都可以正常使用。
操作步驟
根據您的用戶端語言類型,下載對應的4096位演算法的SSL認證。下載連結,請參見上文的SSL認證下載章節。
將下載的認證替換到您的用戶端,然後重啟用戶端。
在執行個體配置頁面修改SSL認證演算法位元為4096。詳細操作,請參見變更訊息配置。
SSL 串連故障排查
完成認證替換後,如果用戶端串連 SSL 存取點時出現握手失敗或認證校正失敗,請按以下步驟排查。
handshake failed(握手失敗)
串連 Kafka SSL 時出現 handshake failed 或 nodename nor servname provided 錯誤,請按以下步驟排查:
檢查認證位元與執行個體配置是否一致。在 Kafka 管理主控台的執行個體詳情頁的配置信息頁簽查看
kafka.ssl.bit參數,下載對應位元的 CA 憑證。確保用戶端信任 Kafka 執行個體的 CA 憑證。通過控制台下載 CA 憑證,或執行以下命令匯出並核對:
openssl s_client -connect <存取點地址>:9093 -showcerts
certificate verify failed(Hostname mismatch)
串連 Kafka SSL 時出現 certificate verify failed 或 Hostname mismatch 錯誤,原因是 SSL 存取點使用 IP 位址,而 Kafka 執行個體的認證 CN 為 AliKafka,IP 位址與認證不匹配。在用戶端配置中禁用主機名稱驗證:
Java kafka-clients:設定
ssl.endpoint.identification.algorithm為空白字串。Python kafka-python:設定
ssl_check_hostname=False。Python ssl 模組:設定
context.check_hostname=False。
confluent-kafka(librdkafka)不支援直接設定 ssl.endpoint.identification.algorithm,需要通過自訂 SSL context 實現。
禁用主機名稱驗證會降低安全性。生產環境中請優先配置正確的 CA 憑證和網域名稱解析,謹慎使用禁用驗證的方案。