I’m attempting to access HTTPS data using the Xbee3 Cellular Cat 1, firmware version 3100C. I haven’t been able to get it to work yet and I was looking for some advice for settings.
First, I tested HTTP access to google.com to validate the module is working. I’m working in Transparent mode and interacting through XCTU. For the HTTP test, I had the following settings:
- Set “APN” to the APN for our cell provider. This was the same for all the tests.
- Set “IP” to “TCP”.
- Set “DL” to “google.com”
- Set “DE” to “50”.
From the console window I sent the following GET request:
GET / HTTP/1.1
Host: www.google.com
Accept: /
I validated through the hex editor that the newlines were composed of “0D 0A” and that there was a double newline at the end of the message. This HTTP GET works and I receive a reasonable response. Then for the HTTPS test I did the following:
- Using my web browser I downloaded the CA certificate from https://google.com. I validated that the certificate is a single certificate and it is in a PEM format (it is a text file and has the “-----BEGIN CERTIFICATE-----” header and “-----END CERTIFICATE-----” footer).
- Using the file manager through XCTU, I uploaded the certificate to the cell module under as “/flash/cert/wgc.crt”. I loaded this as a regular file, not an encrypted file.
- I changed parameter “IP” to “TCPSSL”.
- I verified that parameter “TL” was set to “TLSv1.2”, which was the TLS protocol listed for the CA certificate I downloaded.
- I changed parameter “$0” to “wgc.crt;;”. I also tried “flash/cert/wgc.crt;;” during the test.
- I changed “DE” to “1BB” for TCP port 443.
With these settings I tried sending the same GET request and I got no response. I checked the CI status and it had a code of 0x26, meaning “Connection refused”. I tried resetting the module whenever I changed parameters and I keep getting the same error. What do I have set wrong for an HTTPS GET?
EDIT: Just in case the question comes up, in my testing I tried “www.google.com” and “google.com” in both the “DL” parameter as the Host field in the GET request. With everything I’ve tried I still get the “Connection refused” error.