DelphiDev01 0 Posted September 25, 2024 Please advise what I'm doing wrong here.  I'm trying to connect to Azure IoTHub via TMS MQTT and every time get "Connection lost". I tried both methods: by using certificate and by connection string. For instance my code to create a client with using a certificate: FMQTTClient := TTMSMQTTClient.Create(nil);  FMQTTClient.BrokerHostName := Format('%s.azure-devices.net', [FIoTHubHostName]);  FMQTTClient.BrokerPort := 443;  // also tried 8883, got "csConnectionRejected_ClientNotAuthorized"  FMQTTClient.ClientID := FMyDeviceId; FMQTTClient.OnConnectedStatusChanged := OnConnectedStatusChanged;  FMQTTClient.OnPublishReceived := OnMessageReceived;  FMQTTClient.OnSSLIOHandlerConfiguration := OnSSLIOHandlerConfiguration;   FMQTTClient.KeepAliveSettings.AutoReconnect:= True;  FMQTTClient.KeepAliveSettings.KeepAliveInterval := 30;  FMQTTClient.KeepAliveSettings.KeepConnectionAlive := True;  FMQTTClient.Credentials.Username :=   Format('%s.azure-devices.net/%s/?api-version=2020-09-30', [FIoTHubHostName, FMyDeviceId]);  // Password is not needed for client certificate authentication  FMQTTClient.Credentials.Password := '';  if not IdSSLOpenSSLHeaders.Load then   raise Exception.Create('Failed to load OpenSSL');  if not IsOpenSSL_TLSv1_2_Available then   raise Exception.Create('TLSv1_2 is not available');  FMQTTClient.UseSSL := True;  And code to configurate SSL connection: procedure TMQTTClient.OnSSLIOHandlerConfiguration(ASender: TObject;  var ASSLIOHandler: TIdSSLIOHandlerSocketOpenSSL); begin  ASSLIOHandler.SSLOptions.CertFile := FCertFileName;   // Device certificate  ASSLIOHandler.SSLOptions.KeyFile := FKeyFileName;    // Device private key  ASSLIOHandler.SSLOptions.Mode := sslmClient;  ASSLIOHandler.SSLOptions.Method := sslvTLSv1_2; end;  But every time I get 'ConnectionLost'. Any thoughts, guys?  Appreciate any help.  Share this post Link to post