XBee 3 - communication with HTTPS server

Hi everyone,

I’m trying to send data from a Digi Xbee 3 LTE-M/NB-IoT module via HTTP POST/GET requests to a third party cloud based server (https://thingsboard.cloud). The server uses SSL, and I have configured my module accordingly, using XCTU:

“IP” to “TCPSSL”.
“TL” to “TLSv1.2”
“DE” to “1BB” for TCP port 443
And I’ve downloaded the associated public certificate (single pem file) and loaded it on the flash.

I basically did everything in this thread : “https://forums.digi.com/68818/https-example-with-xbee3-cellular-cat-1?show=68818#q68818”. Unlike its author, I’m able to send GET/POST requests to www.google.com both via transparent and API mode and receive answers from the server. (via IP 173.194.218.100 for API mode).

However, I can’t get any answer from most servers, among which en.wikipedia.org or thingsboard.cloud which is my main goal. I suspect that this is somehow linked to the IP address of the server (for example, I use 34.232.35.38 for thingsboard but it leads to a self-certified website. I can’t ping it either…). When I send a 0x23 frame in API mode, all I get in return is a “85: Unknown error” delivery status…

Basic TCP requests on port 80 such as the numbersapi example in the user manual work fine, which is why I think the problem is related to SSL.

If someone has already managed to make this module communicate with HTTPS servers, I would gladly take any advice they can share.

I would suggest looking at https://www.digi.com/resources/documentation/digidocs/90002219/default.htm#container/cont_aws.htm?TocPath=Use%2520AWS%2520IoT%2520from%2520MicroPython%257C_____0

Hi,

Thanks mvut for your reply. However, I don’t want to use yet another external platform to collect my data. Creating an AWS account specifically for this is not an option for me here. I already have LoRaWAN and Satellite data coming to thingsboard, and I would like to get the same behavior with LTE-M / NB-IoT connected sensors.

I believe thingsboard.cloud is hosted on the AWS cloud, but I have no way to configure it myself: my main entry is HTTP POST requests.

If thingsboard.cloud is indeed hosted on the AWS, I suspect that SNI (Server Name Indication) is required during SSL handshake. However, the SNI isn’t supported by the modem itself.
https://www.digi.com/resources/documentation/Digidocs/90002258/#reference/r_tls_sni.htm?TocPath=Transport%2520Layer%2520Security%2520(TLS)%257C_____8

Curious, when it comes to sensor application, wouldn’t MQTT be a better fit than HTTP POST?