14.4.2. ข้อกำหนดเบื้องต้น: OpenSSL และนาฬิกา

สองส่วนต้องพร้อมก่อนที่หน้าปฏิบัติจริงใด ๆ จะทำงานได้: เครื่องมือบรรทัดคำสั่ง OpenSSL บนเครื่องพัฒนาของคุณ และนาฬิกาที่ถูกต้องบนกล้องในช่วงเวลาของการทำ TLS handshake ทุกครั้ง

14.4.2.1. การติดตั้ง OpenSSL

คำสั่งในส่วนนี้ใช้เครื่องมือบรรทัดคำสั่ง openssl รันบนเครื่องพัฒนาของคุณ -- ไม่ใช่บนกล้อง มักจะติดตั้งไว้แล้ว ตรวจสอบด้วย:

openssl version

หากยังไม่ได้ติดตั้ง ให้ติดตั้งสำหรับระบบปฏิบัติการของคุณ:

  • Linux -- ใช้ package manager เช่น sudo apt install openssl (Debian/Ubuntu), sudo dnf install openssl (Fedora/RHEL) หรือ sudo pacman -S openssl (Arch)

  • macOS -- brew install openssl โดยใช้ Homebrew

  • Windows -- ติดตั้ง build เช่น Win32/Win64 OpenSSL ใช้ package manager (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 ปัจจุบัน การเปิดใช้งาน interface เครือข่ายนั้นขึ้นอยู่กับบอร์ดและไม่แสดงที่นี่ ตัวอย่างในหน้าต่อไปนี้สมมติว่ากล้องเชื่อมต่ออยู่แล้ว