Beantwoord

MQTT TLS error

  • 19 May 2020
  • 8 reacties
  • 646 keer bekeken

We proberen een MQTT destination (plug) toe te voegen. Volgens de documentatie is voor een verbinding met de broker encryptie verplicht. Alleen zorgt nu het versturen van een bericht voor een fout (SSL handshake failure). Als ik het goed begrijp is het voor MQTT met encryptie nodig dat zowel broker als publisher beschikken over hetzelfde CA-certificaat. Ik heb niet een manier kunnen vinden om een CA-file te kunnen uploaden naar KPN Things of andere manier om KPN met de MQTT-server te verbinden met de verplichte encryptie. Is er iemand die dit wel gelukt is?

icon

Beste antwoord door Rick S. 29 May 2020, 11:19

Bekijk origineel

8 reacties

Reputatie 7
Badge +6

Goedemiddag @jeremy ,

Welkom bij de IoT Community!
Ik heb gelijk even aan de bel getrokken bij de specialisten. Het is niet mogelijk om self-signed certificates te gebruiken. Dit ondersteunen wij niet. Het certificaat moet van een bekende CA komen. Op de MQTT Broker pagina staat meer informatie en vind u instructies hoe u het certificaat kunt checken. 

Hallo @Rick S. ,

Dankjewel voor je bericht. Het certificaat dat we gebruiken is een trusted certificaat, zoals in de documentatie staat aangegeven. Ik heb ook geprobeerd de https://test.mosquitto.org te gebruiken als destination, maar ook hier is het nodig om een .crt-certificaat van de website te halen om te kunnen publishen. En ook omdat de MQTT-destination een username en password combinatie vereist en de test.moquitto.org-broker niet, lijkt het er niet op dat deze testbroker gekoppeld kan worden aan KPN Things voor testomgevingen.

Reputatie 7
Badge +6

Goedemiddag @jeremy

Hm dat is vreemd! 
Kunt u mij laten weten van de naam van de Certificatie provider is (dus niet van het certificaat zelf)?
 

Aan de hand daarvan vraag ik de specialisten om te kijken of het bij ons in de stores zit en gaan we verder op onderzoek uit. Alvast bedankt!

Hi @Rick S. ,

De certificaatverlener is GlobalSign RSA DV SSL CA 2018.

Groeten,

Jeremy

Reputatie 7
Badge +6

Hi Jeremy, 

Bedankt voor het doorsturen! 
Ik heb dit laten controleren door de specialisten en ik heb de volgende terugkoppeling ontvangen:

‘Het certificaat dat gebruikt is, is een intermediate certifcate. En zoals in onze docs vermeld staat: " Your TLS/SSL certificate should be signed by a root certificate authority (CA) that is trusted by the default Java trust store”. Dit is dus niet het juiste certificaat. Via de SSL Server Test from Qualys kunt u het certificaat testen’

Hi @Rick S. ,

Bedankt voor je reactie.

Ons certificaat heb ik getest in de doorgestuurde tool en is Java Trusted volgens die tool. Hierbij is het GlobalSign certificaat vermeld in de trust store. Ik heb je een privebericht gestuurd met daarin de URL van de certificaattest. Desalniettemin levert dit geheel nog steeds een handshake failure op.

Reputatie 7
Badge +6

Goedemorgen Jeremy, 

Daar zijn we weer. 
U heeft helemaal gelijk dat dit certificaat wel goed is. De fout zit hem ergens anders in. 
Mijn collega zag namelijk dat u niet de standaard port ( port 443) voor SSL gebruikt voor de MQTT Broker. U heeft port 9104 ingesteld en als mijn collega deze port checkt ziet hij dit certificaat niet terug komen. 

Als u dus het certificaat van port 443 ook op port 9104 toevoegt verwachten we dat de TLS handshake wel lukt. 
Wilt u dit testen en ons een terugkoppeling geven?

@Rick S.

Enorm bedankt voor je hulp. Het had inderdaad de schijn dat het certificaat goed geconfigureerd was, net als op poort 443, maar dit bleek dus maar half zo te zijn. Met https://decoder.link/sslchecker konden we dit poortje controleren. Inmiddels komen de MQTT-berichten binnen!

Groeten,

Jeremy

Reageer