Проблема с HTTPS модема SIM800L - PullRequest
1 голос
/ 20 марта 2020

У меня проблемы с использованием закрепления SSL-сертификата в SIM800L. Я могу успешно делать запросы GET, используя как AT + HTTPSSL = 0, так и AT + HTTPSSL = 1. Однако модуль не проверяет, является ли предложенный сертификат сервера действительным. Согласно этой теме я загрузил сертификат в файловую систему модуля. Я могу успешно установить сертификат с помощью команды AT:

AT+SSLSETCERT=cert.cer

AT+SSLSETCERT=cert.cer
OK

+SSLSETCERT: 0

Однако выполнение этого, похоже, не блокирует использование других сертификатов, например, я пробовал с google.com и mywebsite.com ( для которого я импортировал сертификат). Поэтому я копаю немного глубже и нахожу команду SSLOPT, которая должна (согласно SSL docs ) блокировать недействительные сертификаты. Установка флага с AT + SSLOPT = 0,0, а затем выполнение запроса HTTPS вызывает ошибку 605:

+HTTPACTION: 0,605,0

В документации сказано, что это означает, что «SSL не удалось установить sh каналы». Насколько я понимаю, сервер предлагал недействительный сертификат (так что он отличался от того, который был загружен AT + SSLSETCERT). Если я правильно понимаю, я ожидаю, что эта ошибка возникнет при выполнении запроса, скажем, google.com или selfsigned.badssl.com. Проблема в том, что я получаю это, даже если делаю запрос на mywebsite.com, для которого я загрузил сертификат в хранилище.

Я пробовал аналогичную процедуру с двумя разными модулями (SIM800L и SIM808) и получил аналогичный результат. Я что-то не так делаю?

Вот полный список команд и их ответов на запрос к mywebsite.com:

AT+CREG?
+CREG: 0,5

OK
AT+SAPBR=1,1

AT+SAPBR=1,1
OK
AT+HTTPINIT

AT+HTTPINIT
OK
AT+HTTPPARA="URL","mywebsite.com"

AT+HTTPPARA="URL","mywebsite.com"
OK
AT+HTTPPARA="CID",1

AT+HTTPPARA="CID",1
OK
AT+HTTPSSL=1

AT+HTTPSSL=1
OK
AT+SSLSETCERT=cert.cer

AT+SSLSETCERT=cert.cer
OK

+SSLSETCERT: 0
AT+SSLOPT=0,0

AT+SSLOPT=0,0
OK
AT+HTTPACTION=0

AT+HTTPACTION=0
OK
AT+HTTPREAD

AT+HTTPREAD
OK

+HTTPACTION: 0,605,0 <<<-------This shouldn't be 605
AT+HTTPTERM

AT+HTTPTERM
OK
AT+SAPBR=0,1

AT+SAPBR=0,1
OK
...