บทความนี้อธิบายวิธีตั้งค่า Auto Update SSL Certificate บน Sangfor NSF โดยใช้ Python Script ร่วมกับ Let's Encrypt (Certbot) สำหรับอัปเดต Certificate อัตโนมัติทุก 60-90 วัน
สิ่งที่ต้องเตรียม
- NSF/NGFW Firmware 8.0.85 ขึ้นไป พร้อม Account ที่เปิด API Access
- เครื่อง Server ที่ติดตั้ง Let's Encrypt (Certbot) และเชื่อมต่อกับขา Management ของ NSF ได้
-
Python 3.x พร้อม Requests Library (
pip3 install requests) - ข้อมูล NSF: IP Address, Port, Username, Password
- ชื่อ Decryption Policy ที่ต้องการอัปเดต (ต้องสะกดตรงกับใน NSF)
ขั้นตอนที่ 1: ตั้งค่า Script
แก้ไขไฟล์ update_nsf_cert.py ในส่วน CONFIGURATION:
NSF_HOST = "192.168.1.1" # IP ของ NSF NSF_PORT = 4433 # Port Management NSF_USER = "admin" # Username NSF_PASS = "your_password" # Password CERT_PATH = "/etc/letsencrypt/live/[yourdomain.com]/fullchain.pem" KEY_PATH = "/etc/letsencrypt/live/[yourdomain.com]/privkey.pem" TARGET_POLICY_NAME = "My_Decryption_Policy"
ขั้นตอนที่ 2: ทดสอบ Manual
- ให้สิทธิ์ Execute:
chmod +x update_nsf_cert.py - รัน:
./update_nsf_cert.py - Script จะ Login เข้า NSF, Upload Certificate ใหม่ (ชื่อ
LetsEncrypt_YYYY-MM-DD_HHMM) และแก้ไข Policy ให้ใช้ Certificate ตัวใหม่
ขั้นตอนที่ 3: ตั้งค่า Auto Update กับ Certbot
วิธีที่ 1: ใส่ใน Command Line
certbot renew --deploy-hook /path/to/update_nsf_cert.py
วิธีที่ 2: ตั้งค่าถาวร (แนะนำ)
แก้ไขไฟล์ /etc/letsencrypt/renewal/yourdomain.com.conf:
[renewalparams] ... deploy_hook = /path/to/update_nsf_cert.py
เมื่อ Certbot ต่ออายุ Certificate สำเร็จ จะเรียก Script อัตโนมัติ
Troubleshooting
-
Debug Mode: เปลี่ยน
DEBUG_MODE = Trueในสคริปต์เพื่อดู Error Code -
"Object to be referenced could not be found": ชื่อ Policy ไม่ตรง — ตรวจสอบ
TARGET_POLICY_NAME -
รหัสผ่าน Import: Script ใช้ Dummy Password (
sangfor123) เนื่องจาก API บังคับให้ใส่
หมายเหตุ
- แนะนำให้สร้าง User ใหม่ที่มีสิทธิ์ API เพื่อความปลอดภัย แทนการใช้ Account Admin
- Script รองรับเฉพาะ NSF/NGFW Firmware 8.0.85 ขึ้นไป
ข้อคิดเห็น
0 ข้อคิดเห็น
โปรด ลงชื่อเข้าใช้ เพื่อแสดงข้อคิดเห็น