ESP8266+Arduino+BearSSLでHTTPS接続

インターネットのHTTPS化が進み、IoTデバイスなESP8266でもHTTPS接続が必要になってきました。
2020年のESP8266でのHTTPS接続のスタンダードはBearSSLの様ですが試した際にハマりポイントがあったので書いておきます。

汎用的な正規のHTTPS接続を行いたい場合は CertStoreBearSSL を使う必要があります。サンプルの所にある certs-from-mozilla.py を使用して certs.ar を作っておき SPIFFS や LittleFS に格納し使用します。Windows環境で certs.ar の作成には、OpenSSLのインストール、実行ディレクトリに ar.exe の用意が必要になります。準備して実行しましょう。

または、setInsecure() を指定して X509の確認を行わせないようにします。

どちらの方法をとったとしても、BearSSLは接続ごとに22KBほどメモリを必要とします。先程の証明書を使用すれば更にメモリを使用します。
ハマりポイントというのがこのメモリです。
メモリが足りなくてもデバッグオプションを付けないとメモリが足りないということがわかりません。
プログラムの記述、呼び出し方が正しいと思っていても「正常に接続できない」場合はメモリ不足を疑ってみてください。

プログラム、環境に依存しますがグローバル変数領域に50%以上の空きは必要な様です。

カテゴリー: Arduino関連, ESP8266 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください