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โดยใช้ HomebrewWindows -- ติดตั้ง 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 เครือข่ายนั้นขึ้นอยู่กับบอร์ดและไม่แสดงที่นี่ ตัวอย่างในหน้าต่อไปนี้สมมติว่ากล้องเชื่อมต่ออยู่แล้ว