ESP32-WROOM-32 で信頼ある SSL サーバーを自作する ( ESP-IDF編 )

ESP32 ( ESP-WROOM-32 )

14.ブラウザから信頼を得るために、ルート証明書をインストールする

では、いよいよこのメインテーマです。

IoT を開発する上で、昨今の世の中で一番の話題とも言える、ブラウザからの信頼を得てみましょう。
こんなことできるんかいな?
と思っていましたが、すんなりできてしまいました。

パソコンのブラウザ信頼を得る

Windows 10 パソコンで、Google Chrome 場合として説明します。

前回の記事で作った、ルート認証局 ( CA )証明書のフォルダを開きます。
私の場合は以下のパスです。

D:\OpenSSL-Win64\MyData

その、esp32_ca.crt をダブルクリックします。

すると、下図の様な画面が出てくるので、
「証明書のインストール」をクリック。

次に、下図の画面になるので、保存場所をローカルコンピューターにセレクトして、「次へ」をクリック。

すると、

このアプリがデバイスに変更を加えることを許可しますか?

というメッセージウィンドウが開くので、「OK」をクリックします。

すると、下図の画面になるので、
「証明書をすべてのストアに配置する」
をセレクトして、「参照」をクリックします。

すると、下図の画面が出るので、
「信頼されたルート証明機関」
をクリックしてセレクトし、「OK」をクリックします。

すると、下図の様になるので、「次へ」をクリック。

すると、下図の画面になるので、「完了」をクリック。

すると、下図の様になるので、それぞれ「OK」して証明書のインストール完了です。

次では、スマホへの証明書インストール方法を説明します。

コメント

  1. juchang より:

    mgo-tec 様

    今回こそ何とか自力でクリアしようと望みましたがやはりダメでした。
    試行錯誤しながら、「10. make flash コマンドで、ESP-WROOM-32 フラッシュへコンパイル書き込みする」まで到達しました。
    openssl_CA のシリアルモニターでの確認において、ユーザーサーバー用ローカル IP アドレスが表示されません。
    シリアルモニターには、
    ESP_ERROR_CHECK failed: esp_err_t 0x1110 (ESP_ERR_NVS_NEW_VERSION_FOUND) at 0x400d2de5
    file: “C:/msys32/home/USER-NAME/openssl_CA/main/openssl_server_example_main.c” line 261
    func: app_main
    expression: nvs_flash_init()
    と表示されています。
    「 SSL Server 自作するための OpenSSL 使用方法」を2回やり直して、本テキストに臨みましたが同じ結果となります。
    気になる点:
    ① ESP-IDF の menuconfig 設定で、
    make[1]: ディレクトリ ’/home/USER /esp/esp-idf/tools/kconfig’ に入ります
    という表示がなく、menuconfig 画面に切り替わっています。
    ② 「 SSL Server 自作するための… 」の
    3.ユーザーサーバー用の .cfg ファイルの編集のところで、
    [ usr_cert ]
    basic Constraints = CA: FALSE #170行目変更しない
    とありますが、原文には、#basic Constrains … とあり、コメントアウトが必要?
    抽象的な説明で申し訳ありません、何かヒントがありましたらご教示の程お願いいたします。

    • mgo-tec mgo-tec より:

      juchangさん

      いつもお試しいただき、ありがとうございます。

      今、新規記事アップのための編集大詰め状態ですので、回答は今しばらくお待ちくださいませ。
      m(_ _)m

      • juchang より:

        mgo-tec 様

        お忙しいところご面倒をお掛けします。
        その後の経過報告です。
        ESP_ERROR_CHECK failed: esp_err_t 0x1110 (ESP_ERR_NVS_NEW_VERSION_FOUND) at 0x400d2de5
        について、MSYS2 ツールチェーンのバージョンが、v3.1 と古いことが判明しました。(当初、20190611 を使用していましたが、うまくいかず 20181001 にしたら上記の結果となりました)
        20190611 に戻し、本テキストに再チャレンジしているところですが、今度は、make menuconfig もエラーとなってしまいます。
        テキストのどこの時点までさかのぼってやり直すべきか、OpenSSL の取得を含め、すべて delete してやり直すべきか悩んでいます。

        • mgo-tec mgo-tec より:

          juchangさん

          新規記事アップに体力を大幅に消耗していて、なかなか検証できないでいます。
          申し訳ございません。

          まず、最新のツールチェーンは試していないので、20180110を使って下さい。
          記事を書いた当初はそれで動作確認しています。
          最新のツールチェーンはESP-IDFの使い方が変わっている可能性があります。
          ESP-IDFの辛いところは、バージョンアップすると使えなくなる可能性が高いことです。
          Arduino IDE は環境が殆ど変わらないので、うまく動作しない場合は先に進んで、以下の記事
          Arduino – ESP32 で SSLサーバーを構築し、セキュアな Wi-Fi アクセスポイントセレクターを作ってみました
          を試すという手がおススメです。

          また、#basic Constrainsのところは、コメントを外してください。
          そうしないとユーザーサーバーを認識しません。

          以上、試してみて下さい。

          • mgo-tec mgo-tec より:

            juchangさん

            OpenSSL の最新バージョンはまだ試していませんが、当方でtoolchain 20181001 を使って、ESP-IDF v3.3 にして、サンプルコードをmake flashしてみましたが、特に問題ありませんでした。
            いつの間にかESP-IDFはstable版というものになっていたみたいですね。

            この記事のToolChain リンクが古いままだったので、現在のURLに変更しました。
            また、以下のリンク
            https://docs.espressif.com/projects/esp-idf/en/stable/get-started/index.html#get-esp-idf
            では、ESP-IDF clone する時に、ESP-IDFバージョン指定例が書いてありました。
            それに習って、本記事も修正しました。
            以下の様な感じです。

            git clone -b v3.3 --recursive https://github.com/espressif/esp-idf.git

            また、ESP-IDF の menuconfig 設定で、

            make[1]: ディレクトリ ’/home/USER /esp/esp-idf/tools/kconfig’ に入ります

            という表示がない場合は、恐らく、PATHの指定が誤っているものと思われます。
            今一度、この記事の
            「3.MSYS2 の環境設定で ESP-IDF のパスを通すファイルを作成」
            のところを参照して、ご自分のパソコン内のフォルダパスになっているか確認してください。
            (’\’マークと’/’を間違えないようにしてください)

  2. oku より:

    mgoさん
    やっと鍵マークが出てきました。
    MSYS2のインストールがうまく行きませんでした。バージョンを変えてもコンパイルできません。ESP-IDFのコマンドプロンプトでの環境設定やコンパイルはできるのでそちらで行いました。SSLが良くわかり、ありがとうございました。

    • mgo-tec mgo-tec より:

      okuさん

      こんなマニアックな記事をご覧いただき、ありがとうございます。

      この記事は3年近く前のものですが、動いて良かったです。
      確かに、今のESP-IDFのバージョンなら、MSYS2よりもWindowsコマンドプロンプトで実行した方が確実ですね。
      (^^)

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