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 الحالي. إن تشغيل واجهة الشبكة يعتمد على اللوحة ولا يُعرض هنا؛ تفترض الأمثلة في الصفحات التالية أن الكاميرا متصلة بالفعل.