14.4.2. Предварительные требования: OpenSSL и часы

Две вещи должны быть на месте, прежде чем какая-либо из практических страниц заработает: инструмент командной строки 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).

  • macOSbrew install openssl с использованием Homebrew.

  • Windows – установите сборку, такую как Win32/Win64 OpenSSL, используйте менеджер пакетов (winget install ShiningLight.OpenSSL.Light или choco install openssl) либо используйте openssl, поставляемый с Git for Windows (запускайте его из Git Bash).

14.4.2.2. Установка часов

ssl.CERT_REQUIRED проверяет период действия каждого сертификата, поэтому часы камеры должны быть корректными, иначе проверка не пройдёт (только что включённая камера понятия не имеет, какое сейчас время). При работающем сетевом соединении модуль ntptime получает время по NTP и устанавливает встроенные часы реального времени (machine.RTC) в UTC:

import ntptime

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

После этого time.localtime() и machine.RTC отражают текущее время в UTC. Поднятие сетевого интерфейса зависит от платы и здесь не показано; примеры на следующих страницах предполагают, что камера уже подключена.