今まではWiFiClientではhttpしか叩けなかったのですが、これでhttpsなWebサーバにもアクセス可能です。
(以前の記事では、espconn_secure_connectを直接叩くことでhttpsなWebサーバにアクセスする方法を紹介していました)
多分、こんなコードでPOSTできるはず!
(現在やってるプロジェクトからhttpsPostの関数だけコピって持ってきたので、全体としては動作確認してませんが、関数自体は問題なく動くことを確認済み)
ちなみに、text=Hello ESP8266!とbat=現在のVCC電圧がPOSTされます。
もっとイケてるコードは examples/HTTPSRequest/HTTPSRequest.ino があるので、そちらを参考にしてください... (GitHubのAPIを叩いてJSONをパースしてる)
→ https://github.com/esp8266/Arduino/commit/2ff8aa08d478aceee39fe4147cb7fcc1eef263f1
以前の記事で、SSLライブラリを有効化して、直接ESP8266のAPIを叩くという方法でHTTPS通信した場合と同様、暗号種は以下の4種対応です。
- TLS_RSA_WITH_AES_128_CBC_SHA
- TLS_RSA_WITH_AES_256_CBC_SHA
- TLS_RSA_WITH_RC4_128_SHA
- TLS_RSA_WITH_RC4_128_MD5
WireSharkでパケット見た結果↓
ライブラリはlibsslではなく、axTLSという組み込み向けのSSLライブラリを使っています。
axTLS Embedded SSL
これに気づいたのも、おニュー環境のMacにArduino IDEとArduino core for ESP8266のStaging Versionを入れて、以前の記事の通りにplatform.txtの27行目に -lsslを追記しようとしていたら...
axTLSがリンクされていたので、まさか... と思いGitHubのIssuesを遡ってたら、WiFiClientSecureを追加したよ!みたいな会話があったという。
まだステージングなので色々変わるかもしれませんが、とりあえずこれでサクッとhttps使えますね。