У меня проблемы с использованием закрепления 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