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

ESP32 ( ESP-WROOM-32 )

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サンプルスケッチを開いてみて下さい。

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

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

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

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

Google Chrome の場合

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

https://news.yahoo.co.jp/rss

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

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

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

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

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

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

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

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

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

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

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

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

Windows Edge の場合

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

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

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

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

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

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

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

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

コメント

タイトルとURLをコピーしました