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).

  • macOSHomebrew를 사용하여 brew install openssl.

  • WindowsWin32/Win64 OpenSSL 같은 빌드를 설치하거나, 패키지 관리자(winget install ShiningLight.OpenSSL.Light 또는 choco install openssl)를 사용하거나, Git for Windows에 포함된 openssl를 사용하십시오(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 시각을 반영합니다. 네트워크 인터페이스를 올리는 방법은 보드마다 다르므로 여기서는 다루지 않습니다. 다음 페이지의 예제들은 카메라가 이미 연결되어 있다고 가정합니다.