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).macOS –
brew 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. Поднятие сетевого интерфейса зависит от платы и здесь не показано; примеры на следующих страницах предполагают, что камера уже подключена.