我正在 MQTT 中嘗試 mtls 身份驗證。我正在使用 mosquitto 來實作這一點。當我從同一個 CA 創建服務器和客戶端證書時,連接成功。但是,如果我使用不同的 CA 來創建客戶端證書,那么它會失敗并顯示以下訊息
Client null sending CONNECT
OpenSSL Error[0]: error:14094418:SSL routines:ssl3_read_bytes:tlsv1 alert unknown ca
Error: The connection was lost.
是否必須為 mtls 中的客戶端和服務器證書使用相同的 CA?
Mosquitto.conf
listener 8883
certfile C:\\server.crt
keyfile C:\\server.key
require_certificate true
cafile C:\mqtt-ssl-demo\ca.crt
allow_anonymous true
運行代理使用
mosquitto -c "C:\Program Files\mosquitto\mosquitto.conf"
使用由服務器 cert ca [SUCCESS]簽名的證書的客戶端訂閱
mosquitto_sub --cafile C:\mqtt-ssl-demo\ca.crt -t test -d -h Computername -p 8883 --cert C:\mqtt-ssl-demo\client.crt --key C:\mqtt-ssl-demo\client.key
使用由其他 ca 簽名的證書的客戶端訂閱[失敗]
mosquitto_sub --cafile C:\mqtt-ssl-demo\ca.crt -t test -d -h Computername -p 8883 --cert C:\mqtt-ssl-demo\otherclient.crt --key C:\mqtt-ssl-demo\otherclient.key
使用Mosquitto SSL 配置創建的證書-MQTT TLS 安全
uj5u.com熱心網友回復:
這里要意識到的重要一點是,作為配置的一部分傳遞給代理的 CA 檔案用于驗證任何連接客戶端的證書。
傳遞給客戶端的 CA 檔案 (mosquitto_sub) 用于驗證代理提供的證書。
因此,如果您使用不同的 CA,那么這些檔案需要有所不同,從您發布的內容中不清楚您在哪里使用了哪些 CA 證書。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/465243.html
