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時刻を反映します。ネットワークインターフェースの起動はボード固有であり、ここでは示しません。以降のページの例では、カメラがすでに接続済みであることを前提とします。