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 – Homebrew를 사용하여
brew install openssl.Windows – Win32/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 시각을 반영합니다. 네트워크 인터페이스를 올리는 방법은 보드마다 다르므로 여기서는 다루지 않습니다. 다음 페이지의 예제들은 카메라가 이미 연결되어 있다고 가정합니다.