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 і встановлює вбудований RTC (machine.RTC), у UTC:

import ntptime

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

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