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 і встановлює вбудований RTC (machine.RTC), у UTC:
import ntptime
ntptime.settime() # query NTP and set machine.RTC (UTC)
Після цього time.localtime() та machine.RTC відображають поточний час UTC. Підняття мережевого інтерфейсу залежить від конкретної плати і тут не показано; приклади на наступних сторінках передбачають, що камера вже підключена.