Arduino – ESP32 WiFiClientSecure ライブラリで、安定して https ( SSL )記事をGETする方法

記事公開日:2017年7月25日


スポンサーリンク

SSL認証局(ルート証明書)を取得する

では、ESP32 ( ESP-WROOM-32 )マイコンで SSL ( https )ページを取得するには、ブラウザと同じように公開鍵を含んだルート証明書をマイコンに保存しておかねばなりません。
そこで、Yahoo! Japan RSS ニュースサイトのルート証明書を取得してみたいと思います。

Yahoo! Japan と言えば、誰もが信頼できるサイトと言えますね。
つまり、私個人として、このサイトは信頼できるサイトとして既に審査合格です。
そこで使っているルート証明書を ESP32 ( ESP-WROOM-32 ) に登録しておけば、Yahoo! Japan を信頼あるサイトとして照合できるわけです。

当ブログの過去の記事でも沢山紹介しましたが、Yahoo! Japan RSS サイトというのは、テキストベースの記事で様々なニュースの見出しを提供している、電子工作的にはとても便利なサイトです。
ニュースの詳しい内容を見ることはできませんが、電子工作で電光掲示板に表示させるくらいならば十分です。
私的には、ニュース記事の見出し(記事の題名)だけでもある程度把握できるので、とても重宝しています。
もし、もっと詳しい内容を見たければ、スマホやパソコンでそのサイトを訪問すれば良いわけですから・・・。

因みに、このサイトの利用は個人使用の範囲では無料ですが、それ以上や商用利用については Yahoo! Japan さんへ直接お問い合わせください。

では、まず以下のように、Arduino IDE のWiFiClientSecureサンプルスケッチを開いてみて下さい。

esp32_wificlientsecure01.jpg


すると、こんな感じにtest_root_ca なるものがあります。

esp32_wificlientsecure02.jpg


これが、先ほど説明した認証局が証明している暗号化されたルート証明書です。
因みに、この証明書は Yahoo! Japan RSS サイトのルート証明書ではないので使えません。

Yahoo! Japan RSS サイトの場合は、現時点ではこの証明書が無くても記事を取得できますが、将来的にこれが無いと取得できなくなる可能性もあるので、設定しておいた方が良いでしょう。

では、Yahoo! Japan RSS サイトのルート証明書を取得する方法を説明します。
パソコンのブラウザによって取得方法が異なります。
(Windows10 の場合で説明します)

Google Chrome の場合

まず、Google Chrome を起動し、以下のYahoo! Japan RSSサイトを開いて、右上端の点々をクリックします。

https://headlines.yahoo.co.jp/rss/list

esp32_wificlientsecure03.jpg


次に「その他のツール」→「デベロッパーツール」をクリックします。

esp32_wificlientsecure04.jpg


次に、下図の様に 「Security 」タブを選択後、「View certificate」をクリックします。

esp32_wificlientsecure05.jpg


すると、下図の様にウィンドウが出ますので、「証明のパス」タブを選択し、一番上の証明書を選択します。
ここでは、DigiCert Baltimore Root になります。
その後、「証明書の表示」ボタンをクリックします。

esp32_wificlientsecure06.jpg


すると、下図の様に同じようなウィンドウがもう一つ表示されます。
これが、ルート証明書のウィンドウになります。
前のウィンドウと間違えやすいので気を付けてください。

そしたら、下図の様に「詳細」タブを選択し、「ファイルにコピー」ボタンをクリックします。

esp32_wificlientsecure07.jpg


すると、下図の様な表示が出るので、「次へ」をクリックします。

esp32_wificlientsecure08.jpg


次に、エクスポートするファイル形式は Base 64 エンコードを選択して、「次へ」をクリックしてください。

esp32_wificlientsecure09.jpg


すると、下図の様になるので、好きなファイル名を入力し、「参照」で好きなフォルダを指定します。
良ければ、「次へ」をクリック

esp32_wificlientsecure10.jpg


すると、下図の様な表示になるので、ここは何も選択せず、そのまま「完了」をクリックして終了です。

esp32_wificlientsecure11.jpg


そうすると、指定したフォルダにこんな感じでルート証明書ファイルができています。

esp32_wificlientsecure12.jpg


これをテキストエディタで開きます。
すると、下図の様に Arduino IDE サンプルスケッチにあったような暗号化されたルート証明書になっていることがわかると思います。
この中には認証機関や公開キー等の情報が暗号化されて詰まっています。

esp32_wificlientsecure13.jpg


これを、Arduino IDE にコピペして、サンプルスケッチにあるような書式に変更すれば良いわけです。

Windows Edge の場合

Windows10 のブラウザ、Edge の場合は方法がちょっと異なります。
なぜか、Windows Edge では SSL サイトのルート証明書を見ることが出来ません。
これは、セキュリティーを強化するためなのかも知れませんが、ユーザー側としてはサイトが信頼できるかどうか確認するためにも、閲覧できるようにしてもらいたいですね。

では、どうするかというと、Internet Explorer で見ることになります。

まず、Edge で Yahoo! Japan ニュース RSSサイトを開き、下図の様なところをクリックします。

esp32_wificlientsecure14.jpg


次に下図の様に「Internet Explorer」で開く をクリックします。

esp32_wificlientsecure15.jpg


次に、下図の様に Internet Explorer の鍵アイコンをクリックします。

esp32_wificlientsecure16.jpg


次に、下図の様なウィンドウが出ますので、「証明書の表示」をクリックします。

esp32_wificlientsecure17.jpg


すると、このように表示されるので、あとは先に説明した Google Chrome と同じ方法でルート証明書を取得すれば良いです。

esp32_wificlientsecure18.jpg


以上、Yahoo! Japan RSS ニュースサイトのルート証明書の取得方法でした。


スポンサーリンク


コメントを残す

メールアドレスが公開されることはありません。

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