software.amazon.awssdk.crt.mqtt.MqttException: socket is closed.at software.amazon.awssdk.crt.mqtt.MqttClientConnection.onConnectionComplete(MqttClientConnection.java:140)
Resolved :
You must use nginx module: ngx_stream_proxy_module ( like network load balancer) this is a template to resolve :
Stream{map $ssl_preread_server_name $domain {stg-iot.yourdomain stg-iot;iot.yourdomain prod-iot;}upstream stg-iot {server IoT-xxxxxx..ap-your_region-1.amazonaws.com:443;}upstream prod-iot {server IoT-xxxxxx..ap-your_region-1.amazonaws.com:443;}map $ssl_server_name $targetCert {stg-iot.yourdomain /etc/nginx/ssl/star_yourdomain.crt;iot.yourdomain /etc/nginx/ssl/star_yourdomain.crt;}map $ssl_server_name $targetCertKey {stg-iot.yourdomain /etc/nginx/ssl/star_yourdomain.key;iot.yourdomain /etc/nginx/ssl/star_yourdomain.key;}server {listen 443;ssl_certificate $targetCert;ssl_certificate_key $targetCertKey;proxy_pass $domain;ssl_preread on;}}
===============================================================
Feel free to use them without concern!
Nginx reverse proxy for AWS IoT MQTT over TLS
Nguyen Si Nhan