版本:EMQX 5.7.2
服务器:4C16G,单台应用(性能测试)
部署方式:Nginx配置了SSL(自签名CA),反向代理将连接转发到后端EMQX服务 1883 端口,配置如下:
server {
listen 8883 ssl;
server_name localhost;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_certificate /usr/local/nginx/ssl/www.t-chef.cn.pem;
ssl_certificate_key /usr/local/nginx/ssl/www.t-chef.cn.key;
ssl_verify_depth 2;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
proxy_pass http://127.0.0.1:1883;
}
}
现象:我使用MQTTX客户端 mqtts:// 接入的时候不需要指定CA证书,但是使用Java、安卓、iOS客户端进行 ssl:// 连接时,看了SDK示例都需要加载 CA 证书才可以进行。
问题一:如果是公共CA证书,是不是可以不用指定CA证书,只有自签名的才需要指定?
问题二:服务器配置的是自签名,但是 MQTTX 可以正常连接,是因为 MQTTX 内部自动检测和信任了服务器的证书吗?