วิธีขอใบรับรอง SSL จาก ZeroSSL ใน ServBay
ServBay คือสภาพแวดล้อมพัฒนาเว็บบนเครื่องอันทรงพลัง โดยรองรับการขอและบริหารจัดการใบรับรอง SSL/TLS อัตโนมัติผ่านโปรโตคอล ACME (Automated Certificate Management Environment) นี่ช่วยให้นักพัฒนาสามารถตั้งค่า HTTPS สำหรับเว็บไซต์ท้องถิ่นได้ง่ายๆ จำลองการทำงานจริง และทดสอบฟีเจอร์ที่ต้องใช้ HTTPS (เช่น Service Worker, Security Context API ฯลฯ) คู่มือนี้จะอธิบายขั้นตอนการขอใบรับรอง SSL ฟรีจาก ZeroSSL ผ่าน ServBay อย่างละเอียด
ภาพรวม
ใช้ความสามารถ ACME ที่รวมมากับ ServBay คุณสามารถขอใบรับรอง SSL ที่เชื่อถือได้จากผู้ออกใบรับรอง (CA) อย่าง ZeroSSL ได้โดยตรง ServBay จะดูแลการขอใบรับรอง, การตรวจสอบสิทธิ์ผ่าน DNS-01 challenge และการต่ออายุใบรับรองโดยอัตโนมัติ ลดความยุ่งยากในการตั้งค่า HTTPS สำหรับสภาพแวดล้อมพัฒนาเว็บบนเครื่อง
กรณีการใช้งาน
- จำลองการตั้งค่า HTTPS เหมือนสภาพแวดล้อมจริงในเครื่องพัฒนา
- ทดสอบฟีเจอร์เว็บที่ต้องการ Security Context เช่น Service Worker, Web Authentication API, Geolocation API (ในบางเบราว์เซอร์), Payment Request API ฯลฯ
- ทำให้ขั้นตอนพัฒนากับใช้งานจริงตรงกัน ลดปัญหาแตกต่างของโปรโตคอล
- ใช้ใบรับรอง SSL ที่เชื่อถือได้ สำหรับบริการท้องถิ่นที่ต้องเข้าถึงผ่านเครือข่ายสาธารณะหรือในองค์กร (เช่น Tunneling)
ข้อกำหนดเบื้องต้น
ก่อนขอใบรับรอง ZeroSSL กรุณาตรวจสอบว่ามีครบตามข้อกำหนดดังนี้:
- มีชื่อโดเมนที่เป็นของคุณเอง: คุณต้องมีและควบคุมโดเมนของตัวเอง โดยใบรับรองนี้จะออกให้กับโดเมน ไม่สามารถใช้กับ
localhost
หรือไอพี - สามารถแก้ไขระเบียน DNS ของโดเมนได้: ZeroSSL (ผ่าน ACME DNS-01 challenge) ต้องการให้คุณเพิ่มระเบียน TXT เฉพาะใน DNS ของโดเมน เพื่อยืนยันความเป็นเจ้าของ คุณต้องมีสิทธิ์ปรับแก้ DNS ของโดเมน
- ได้รับ API Key ของผู้ให้บริการ DNS: ServBay ใช้วิธี DNS API ในการยืนยันโดเมนโดยอัตโนมัติ คุณต้องขอคีย์สำหรับเข้าถึง DNS API จากผู้ให้บริการโดเมนหรือบริการ DNS ของคุณ เช่น Cloudflare, GoDaddy, Aliyun DNS ฯลฯ วิธีขอแต่ละบริการจะแตกต่างกัน โดยปกติจะสร้างได้ในหน้าผู้ใช้บนเว็บไซต์ของผู้ให้บริการ คุณสามารถดูรายละเอียดและชื่อคีย์ที่ต้องใช้ได้ที่ acme.sh Wiki DNS API section (แม้ ServBay จะใช้ไคลเอนต์ ACME คนละตัว แต่รูปแบบตั้งค่า DNS API ของ ServBay เข้ากันกับ acme.sh)
ขั้นตอนการขอใบรับรอง
ทำตามขั้นตอนเหล่านี้ใน ServBay เพื่อขอใบรับรอง SSL จาก ZeroSSL:
เปิด ServBay และแผงควบคุม: ดับเบิลคลิกไอคอน ServBay เพื่อเปิดโปรแกรม แล้วใช้ไอคอนถาดระบบหรือเมนูเพื่อเปิดแผงควบคุม ServBay
เข้าสู่หน้าบริหารจัดการใบรับรอง SSL: ในแถบข้างของแผงควบคุม ServBay ค้นหาและคลิกที่ SSL Certificates
เริ่มต้นขอใบรับรองใหม่: ที่หน้ารายชื่อใบรับรอง SSL มุมขวาบน คลิกปุ่มที่มีเครื่องหมายบวก (+) เพื่อเปิดหน้าต่างตั้งค่าขอใบรับรอง
กรอกข้อมูลขอใบรับรอง: ในหน้าต่าง "Request Certificate" (ขอใบรับรอง) ให้กรอกข้อมูลสำคัญดังนี้:
- Common Name (ชื่อสำหรับระบุ): ตั้งชื่อที่เข้าใจง่ายสำหรับใบรับรอง เช่น
servbay.demo SSL
(ใช้เพื่อระบุใน ServBay เท่านั้น) - Usage Purpose (วัตถุประสงค์การใช้งาน): เลือก
TLS/SSL
หมายถึงใช้สำหรับเข้ารหัสเว็บ - Request Method (วิธีการขอ): เลือก
ACME
คือขอผ่านโปรโตคอล ACME อัตโนมัติ - Issuer (ผู้ออกใบรับรอง): เลือก
ZeroSSL
- DNS API Provider (ผู้ให้บริการ DNS API): เลือกผู้ให้บริการ DNS ที่ใช้กับโดเมนของคุณจากรายการ เช่น Cloudflare, GoDaddy ฯลฯ ServBay รองรับผู้ให้บริการยอดนิยมหลากหลาย
- Algorithm (อัลกอริทึม): แนะนำให้เลือก
ECC
(Elliptic Curve Cryptography) และเลือกความยาวคีย์384
ซึ่งปลอดภัยเทียบเท่า RSA แต่คีย์สั้นและประสิทธิภาพดีกว่า - E-Mail Address (อีเมล): กรอกอีเมลที่ใช้งานได้จริง สำหรับรับแจ้งเตือนหมดอายุหรือปัญหาจาก ZeroSSL หรือ ServBay
- DNS API Tokens (โทเคนของ DNS API): กรอกข้อมูลคีย์ API ของผู้ให้บริการ DNS ในรูปแบบคู่ Key-Value (เช่น
CF_Key=xxx CF_Email=xxx
) ดูรายละเอียดรูปแบบและชื่อคีย์ใน acme.sh Wiki หมายเหตุ: ห้ามเติมexport
หรือคำสั่ง shell อื่น ให้ใส่เฉพาะรูปแบบคีย์=ค่า
หรือคีย์="ค่า"
สามารถมีได้หลายค่าคั่นด้วยเว้นวรรค - Domain (โดเมน): กรอกชื่อโดเมนที่ต้องการออกใบรับรอง หากต้องการให้ครอบคลุมหลายโดเมน (รวมถึง wildcard domain) ให้คั่นด้วยจุลภาค เช่น
servbay.demo, www.servbay.demo, *.servbay.demo
หมายเหตุ: การขอ wildcard certificate (*.yourdomain.com
) จำเป็นต้อง ใช้การยืนยันผ่าน DNS API
(โปรดทราบ: ตัวอย่างโดเมนในภาพอาจต่างกับตัวอย่างในบทความ กรุณายึดตามข้อความในบทความเป็นหลัก)
- Common Name (ชื่อสำหรับระบุ): ตั้งชื่อที่เข้าใจง่ายสำหรับใบรับรอง เช่น
ยืนยันและส่งคำขอ: ตรวจสอบข้อมูลทุกช่องจนแน่ใจว่าไม่ผิด แล้วคลิกปุ่ม Request (ขอใบรับรอง) ที่มุมขวาล่างของหน้าต่าง
รอผลการขอใบรับรอง: ServBay จะเรียกใช้งาน ACME client เชื่อมต่อกับ ZeroSSL ทำการยืนยันความเป็นเจ้าของโดเมนโดยอัตโนมัติ (สร้างและยืนยันระเบียน TXT ผ่าน DNS API ที่คุณกรอก) เมื่อยืนยันสำเร็จจะติดตั้งใบรับรองให้เอง กระบวนการนี้ใช้เวลาตามความเร็วของการกระจาย DNS และการตอบสนองจาก ZeroSSL ในหน้า ServBay จะแสดงสถานะคำขอให้ทราบ
ตรวจสอบรายการใบรับรอง: หากขอสำเร็จ ใบรับรองใหม่ที่ได้จะอยู่ในรายการ SSL Certificates และสถานะจะเป็น "Valid" (ใช้ได้)
การใช้งานใบรับรอง
เมื่อขอใบรับรองเสร็จและเพิ่มใน ServBay แล้ว สามารถนำไปใช้กับเว็บท้องถิ่นได้ดังนี้:
- เข้าสู่การตั้งค่าเว็บไซต์: ในแถบข้างของแผงควบคุม ServBay คลิกที่ เว็บไซต์
- เลือกหรือแก้ไขเว็บไซต์: เลือกเว็บไซต์ที่ต้องการตั้งค่า HTTPS หรือสร้างเว็บไซต์ใหม่
- ตั้งค่าใบรับรอง SSL: ในหน้าแก้ไขเว็บไซต์ หัวข้อ SSL ให้เปลี่ยนจากค่าเริ่มต้น (เช่น "None" หรือ ServBay User CA) เป็น ACME
- เลือกใบรับรองที่เพิ่งขอมา: ในรายการใบรับรอง ACME ขวามือ เลือกใบรับรองที่เพิ่งขอมาจาก ZeroSSL (สังเกตได้จาก Common Name ที่ตั้งไว้)
- บันทึกการตั้งค่า: คลิกปุ่มบันทึกเพื่อยืนยันค่าใหม่ ServBay จะตั้งค่า Web Server (Caddy หรือ Nginx) โดยอัตโนมัติและให้บริการ HTTPS ด้วยใบรับรองใหม่นี้
(โปรดทราบ: ตัวอย่างโดเมนในภาพอาจต่างกับตัวอย่างในบทความ กรุณายึดตามข้อความในบทความเป็นหลัก)
ขณะนี้คุณสามารถเข้าถึงเว็บไซต์ท้องถิ่นผ่าน https://your-domain
ได้แล้ว
การต่ออายุใบรับรอง
ใบรับรองที่ออกโดย ZeroSSL มีอายุประมาณ 90 วัน ระบบ ACME ที่ถูกฝังใน ServBay จะดูแลการต่ออายุอัตโนมัติ เมื่อใกล้หมดอายุ (โดยปกติล่วงหน้า 30 วัน) ขอใบรับรองใหม่ให้อัตโนมัติ ตราบใดที่ ServBay ทำงานอยู่และ DNS API Key ของคุณยังใช้งานได้ ไม่ต้องดำเนินการด้วยตนเอง
หมายเหตุสำคัญและการแก้ปัญหา
- ดูแลความปลอดภัยของ DNS API Key: DNS API Key สามารถแก้ไขระเบียน DNS ได้ กรุณาเก็บเป็นความลับ อย่าเปิดเผย
- ระยะเวลากระจาย DNS: การขอใบรับรองอาศัยการยืนยัน DNS TXT Record ซึ่งอาจใช้เวลาหลายนาทีถึงหลายชั่วโมง หากขอแล้วล้มเหลวให้รอสักครู่และลองใหม่
- รูปแบบ API Key: ต้องแน่ใจว่า API Key ที่กรอกตรงตามข้อกำหนดของ acme.sh Wiki และไม่มีคำสั่ง
export
หรือ shell อื่น ๆ นำหน้า นี่คือสาเหตุหลักที่มักผิดพลาด - Firewall: ตรวจสอบว่าระบบ firewall หรือเครือข่ายภายในไม่บล็อก ServBay จากการติดต่อกับ ZeroSSL หรือ API ของผู้ให้บริการ DNS
- ServBay User CA vs. ZeroSSL: ServBay มีทั้ง ServBay User CA (สำหรับพัฒนาในเครื่องอย่างเดียว ใช้ root certificate ในเบราว์เซอร์/ระบบที่เชื่อถือเอง) กับ Public CA อย่าง ZeroSSL (เชื่อถือได้ในวงกว้าง เหมาะกับบทบาทจำลองงานจริงหรือเปิดแอคเซสผ่านอินเตอร์เน็ต) เลือกประเภทใบรับรองให้เหมาะสมกับงานของคุณ
สรุป
ด้วยการผนวก ACME ใน ServBay คุณสามารถขอใบรับรอง SSL ฟรีจาก ZeroSSL และจัดการได้อย่างง่ายดาย เปิดใช้งาน HTTPS ให้เว็บท้องถิ่น จำลองสภาพแวดล้อมจริงและทดสอบฟีเจอร์ความปลอดภัยได้สะดวก ประสบการณ์การพัฒนาได้รับการยกระดับเต็มที่ การทำงานแบบอัตโนมัติทั้งขั้นตอนขอและต่ออายุใบรับรอง ทำให้การตั้งค่า HTTPS บนเครื่องง่ายอย่างที่ไม่เคยเป็นมาก่อน