14.4.2. 前提条件:OpenSSLとクロック

ハンズオンのページが動作する前に、2つのものが揃っている必要があります。開発マシン上のOpenSSLコマンドラインツールと、すべてのTLSハンドシェイクの瞬間における正確なカメラのクロックです。

14.4.2.1. OpenSSLのインストール

このセクションのコマンドは、カメラ上ではなく開発マシン上で実行する openssl コマンドラインツールを使用します。これはすでにインストールされていることが多く、次のコマンドで確認できます:

openssl version

見つからない場合は、お使いのオペレーティングシステム向けにインストールしてください。

  • Linux -- パッケージマネージャーを使用します。例えば sudo apt install openssl(Debian/Ubuntu)、sudo dnf install openssl(Fedora/RHEL)、sudo pacman -S openssl(Arch)。

  • macOS -- Homebrew を使って brew install openssl

  • Windows -- Win32/Win64 OpenSSL のようなビルドをインストールするか、パッケージマネージャー(winget install ShiningLight.OpenSSL.Light または choco install openssl)を使うか、Git for Windows に同梱される openssl を使用します(Git Bashから実行します)。

14.4.2.2. クロックの設定

ssl.CERT_REQUIRED は各証明書の有効期間をチェックするため、カメラのクロックが正確でなければ検証は失敗します(電源投入直後のカメラは現在時刻を把握していません)。動作するネットワーク接続があれば、ntptime モジュールがNTP経由で時刻を取得し、オンボードのRTC(machine.RTC)をUTCで設定します:

import ntptime

ntptime.settime()                 # query NTP and set machine.RTC (UTC)

この後、time.localtime()machine.RTC は現在のUTC時刻を反映します。ネットワークインターフェースの起動はボード固有であり、ここでは示しません。以降のページの例では、カメラがすでに接続済みであることを前提とします。