ขอใบรับรอง SSL ด้วยวิธี ACME ใน ServBay
ServBay รองรับการใช้โปรโตคอล ACME ในการขอใบรับรอง SSL/TLS ให้กับเว็บไซต์พัฒนาในเครื่องของคุณโดยอัตโนมัติ ACME (Automated Certificate Management Environment) เป็นมาตรฐานสากลสำหรับการบริหารวงจรชีวิตของใบรับรอง (เช่น ขอใหม่, ต่ออายุ, และเพิกถอน) แบบอัตโนมัติ ผ่านแผงจัดการ ACME ของ ServBay คุณสามารถตั้งค่าใบรับรอง SSL ที่ได้รับความไว้วางใจให้กับเว็บไซต์ในเครื่องได้อย่างรวดเร็วและง่ายดาย ซึ่งสำคัญมากสำหรับการจำลองสภาพแวดล้อมเหมือนจริงและทดสอบฟีเจอร์ที่เกี่ยวข้องกับ HTTPS
โดยปกติ ServBay จะเลือกใช้ ZeroSSL เป็นผู้ออกใบรับรองหลัก คุณยังสามารถเลือกใช้ Let's Encrypt หรือ Google Trust Services หรือ CA ที่รองรับ ACME อื่นๆ ได้ตามต้องการ
TIP
เพื่อให้สภาพแวดล้อมการพัฒนาในเครื่องสอดคล้องกับสภาพแวดล้อมจริงมากที่สุด การใช้ใบรับรอง SSL ที่เชื่อถือได้จึงเป็นสิ่งสำคัญ ฟีเจอร์ ACME ของ ServBay ช่วยให้ขั้นตอนนี้เป็นเรื่องง่ายอย่างยิ่ง
อธิบายแนวคิดหลัก
ก่อนเริ่มใช้งาน มาทำความเข้าใจแนวคิดพื้นฐานบางอย่างที่ช่วยให้คุณใช้ ACME ของ ServBay ได้มีประสิทธิภาพมากขึ้น:
- โปรโตคอล ACME: โปรโตคอลมาตรฐานเปิดสำหรับการทำงานร่วมกันระหว่าง Certificate Authority (CA) และเซิร์ฟเวอร์ เพื่อออกใบรับรอง ต่ออายุ และจัดการใบรับรองอัตโนมัติ
- การตรวจสอบสิทธิ์ DNS-01 (ผ่าน DNS API): โปรโตคอล ACME รองรับหลายรูปแบบการยืนยันความเป็นเจ้าของโดเมน ServBay เลือกใช้วิธี DNS-01 ซึ่งหมายถึง CA จะขอให้คุณเพิ่ม TXT record เฉพาะใน DNS ของโดเมน เพื่อยืนยันความเป็นเจ้าของ ข้อดีหลักคือ:
- ไม่ต้องให้สภาพแวดล้อมพัฒนาในเครื่องเข้าถึงอินเทอร์เน็ตได้โดยตรง
- แม้พอร์ต 80/443 จะโดนบล็อกก็ยังสามารถตรวจสอบได้
- External Account Binding (EAB): สำหรับ CA บางแห่ง (เช่น Google Trust Services หรือ ZeroSSL) ในการขอใบรับรองครั้งแรก จะต้องใช้ EAB เพื่อเชื่อมโยง client ACME (ที่ ServBay ฝัง acme.sh ไว้) กับบัญชีผู้ใช้ที่ลงทะเบียนบน CA ซึ่งมักประกอบด้วย Key ID และ HMAC Key
- ใบรับรอง ECC กับ RSA:
- RSA: เป็นอัลกอริธึมการเข้ารหัสแบบดั้งเดิม ให้ความเข้ากันได้สูง แต่ต้องใช้คีย์ยาว (เช่น 2048 หรือ 4096 บิต) เพื่อความปลอดภัย และมีภาระในการคำนวณมากกว่า
- ECC (Elliptic Curve Cryptography): อัลกอริธึมยุคใหม่ที่มีขนาดคีย์สั้นกว่า (เช่น 256 หรือ 384 บิต) สำหรับระดับความปลอดภัยเท่าเดิม ได้ประสิทธิภาพสูง เชื่อมต่อเร็ว ประหยัดแบนด์วิธ และมีคุณสมบัติ Perfect Forward Secrecy ที่ดีกว่า ServBay แนะนำใช้ ECC เป็นปริยาย
ข้อกำหนดเบื้องต้น
ServBay ใช้วิธี DNS API สำหรับขอใบรับรอง ACME จึงไม่จำเป็นต้องให้เว็บไซต์ในเครื่องเข้าถึงอินเทอร์เน็ตได้ ก่อนเริ่มใช้งาน ACME สำหรับ SSL โปรดตรวจสอบว่าคุณมีสิ่งต่อไปนี้:
- มีโดเมนอยู่ในความครอบครอง: ต้องมีโดเมนที่จดทะเบียนและจัดการ DNS ได้เอง
- มี API Key ของ DNS Provider: ขณะสมัครขอใบรับรอง ACME จะต้องมี API Key เพื่อใช้เพิ่ม/ลบ TXT record ใน DNS อัตโนมัติ คุณต้องได้ API Key หรือรหัสยืนยันจากผู้ให้บริการ DNS (ผู้ดูแล DNS จริง ไม่จำเป็นต้องเป็นผู้จดทะเบียนโดเมน) ดูรายชื่อ DNS Providers ที่รองรับกับวิธีขอ API Key ใน How to use DNS API (Wiki ของ acme.sh, ภาษาอังกฤษ) แล้วเลือกคู่มือให้ตรงกับผู้ให้บริการ DNS ของคุณ
- รับ EAB Credentials (ถ้าใช้ Google Trust Services หรือขอ ZeroSSL ครั้งแรก): ถ้าเลือกใช้ Google Trust Services ต้องขอ EAB จาก Google Cloud ตามคู่มือทางการ Obtaining EAB credentials from Google Cloud (ภาษาอังกฤษ) สำหรับ ZeroSSL อาจต้องยืนยันอีเมลหรือใช้ API Key ในการขอครั้งแรก
วิธีขอใบรับรอง SSL ด้วย ACME ใน ServBay
ทำตามขั้นตอนนี้เพื่อขอใบรับรอง SSL ให้เว็บไซต์พัฒนาในเครื่องผ่าน ServBay:
เปิดแผงจัดการ ServBay เปิดแอป ServBay และใช้ไอคอนในเมนูบาร์หรือ Dock เพื่อเข้าสู่แผงควบคุม
ไปที่จัดการใบรับรอง SSL ที่แถบเมนูด้านซ้ายในแผงจัดการ ServBay คลิกเลือก
SSL 证书
(ใบรับรอง SSL)เริ่มขอใบรับรองใหม่ คลิกปุ่ม
+
มุมขวาบนของหน้าจัดการใบรับรอง แล้วเลือก申请新证书
(ขอใบรับรองใหม่)ตั้งค่าข้อมูลพื้นฐานของใบรับรอง
- ชื่อใบรับรอง: ให้ชื่อเพื่อการแยกแยะง่าย (ตัวอย่าง:
servbay-demo-ssl
) - ประเภทการใช้งาน: เลือก
TLS/SSL
- วิธีร้องขอ: เลือก
ACME
- ชื่อใบรับรอง: ให้ชื่อเพื่อการแยกแยะง่าย (ตัวอย่าง:
เลือกผู้ออกใบรับรอง (CA) ในเมนู
签发方
(ผู้ออกใบรับรอง) ให้เลือกผู้ออกใบรับรองที่ต้องการ ใช้ZeroSSL
เป็นปริยาย หรือเลือกLet's Encrypt
/Google Trust Services
ก็ได้ ในตัวอย่างนี้จะเลือกZeroSSL
เลือกผู้ให้บริการ DNS API ในเมนู
DNS API 提供商
เลือก DNS Provider ที่โดเมนของคุณใช้งาน ตัวอย่างเช่นCloudflare
— ตรงนี้ควรเลือก platform ที่ดูแล DNS จริง (ไม่จำเป็นต้องเป็นเจ้าเดียวกับที่จดโดเมน)เลือกอัลกอริธึมและความยาวกุญแจใบรับรอง
- อัลกอริธึม: ควรเลือก
ECC
เป็นค่าแนะนำเพราะปลอดภัยและมีประสิทธิภาพกว่า แต่ถ้าต้องรองรับเครื่องเก่าอาจเลือกRSA
- ความยาวกุญแจ: ECC ปกติใช้
384
บิตก็เพียงพอ RSA ทั่วไปใช้2048
หรือ4096
บิต
- อัลกอริธึม: ควรเลือก
ตั้งค่าข้อมูลสำหรับยืนยันตัวตน ฟอร์มตรงนี้จะแสดงช่องสำหรับกรอกข้อมูลตามที่เลือกไว้ข้างต้น
- ZeroSSL: อาจต้องกรอกอีเมล
- Cloudflare: ต้องกรอก API Key หรือข้อมูลรับรองตามเอกสาร acme.sh
WARNING
หมายเหตุ: กรุณาวางเฉพาะค่า API Key หรือ Secret เท่านั้น อย่าใส่คำสั่ง export หรือคำสั่ง Shell ที่หน้าช่องกรอกข้อมูล
ระบุชื่อโดเมน ในช่อง
域名
กรอกโดเมนที่ต้องการขอใบรับรอง เช่นservbay.demo
หรือ*.servbay.demo
หากต้องการขอครอบคลุมทั้งโดเมนย่อย (Wildcard) ให้แน่ใจว่า DNS Provider ของคุณรองรับการเพิ่ม TXT record แบบอัตโนมัติสำหรับ wildcard domainเริ่มการร้องขอ ตรวจสอบว่ากรอกข้อมูลถูกต้องครบถ้วน กดปุ่ม
请求
(Request) ServBay จะเรียกใช้ acme.sh ที่ฝังมา พร้อมส่งข้อมูล DNS API เพื่อยืนยันและดำเนินการออกใบรับรองโดยอัตโนมัติ
ระยะเวลาดำเนินการอาจขึ้นอยู่กับความเร็วการปรับปรุง DNS และการตอบสนองของ CA คุณสามารถดูความคืบหน้าได้ใน log หรือรายการใบรับรองใน ServBay เมื่อสำเร็จ ใบรับรองใหม่จะแสดงในรายการ SSL 证书
นำใบรับรองไปใช้กับเว็บไซต์ใน ServBay
หลังจากได้ใบรับรอง ACME แล้ว คุณสามารถนำไปใช้กับเว็บไซต์ใน ServBay ได้โดย:
- ไปที่เมนู
网站
(เว็บไซต์) ทางซ้ายในแผงจัดการ ServBay - เลือกเว็บไซต์ที่ต้องการเปิด SSL แล้วกดปุ่มแก้ไข (ไอคอนดินสอ) ทางขวา
- ในหน้าแก้ไขเว็บไซต์ ค้นหาตัวเลือก
SSL 证书
- เลือกชื่อใบรับรอง ACME ที่เพิ่งขอมาใน dropdown
- ตรวจสอบให้แน่ใจว่า
启用 SSL
(เปิด SSL) อยู่ในสถานะเปิด - บันทึกการตั้งค่า เว็บไซต์ของคุณจะเปิดผ่าน HTTPS ได้ทันที
การต่ออายุใบรับรอง ACME
ใบรับรองจาก ACME (เช่น Let's Encrypt หรือ ZeroSSL) มีอายุ 90 วัน เพื่อให้เว็บใช้งาน HTTPS ได้ต่อเนื่อง ต้องดำเนินการต่ออายุก่อนหมดอายุ
ServBay จะตรวจสอบอายุใบรับรอง ที่ขอผ่าน ACME ให้อัตโนมัติ และเมื่อใกล้ครบกำหนดจะใช้ข้อมูล DNS API ที่เคยตั้งค่าไว้ในการขอต่ออายุให้โดยอัตโนมัติ
หาก DNS API key ของคุณไม่หมดอายุ และ DNS Provider สามารถเชื่อมต่อได้ไม่มีปัญหา คุณไม่ต้องดำเนินการใดเพิ่มเติมในการต่ออายุ ServBay จะทำงานเบื้องหลังให้อย่างเงียบๆ
คำถามที่พบบ่อย (FAQ) และการแก้ไขปัญหา
- ขอใบรับรองไม่สำเร็จ ขึ้น Error DNS Verification Failed?
- ตรวจสอบว่ากรอก DNS API credentials ถูกต้อง และมีสิทธิ์ในการแก้ไข TXT record
- ตรวจสอบว่าเลือก DNS Provider ใน ServBay ตรงกับผู้ให้บริการ DNS ที่ใช้งานจริง
- การเพิ่ม DNS record อาจต้องรอเวลาสำหรับการกระจายทั่วโลก ลองรอสักครู่แล้วขอใหม่
- ตรวจสอบสะกดชื่อโดเมนให้ถูกต้อง
- ขอไม่ผ่านและขึ้น Error เกี่ยวกับ EAB?
- ถ้าใช้ Google Trust Services หรือ ZeroSSL เป็นครั้งแรก ตรวจสอบว่าการกรอก EAB Credentials ถูกต้อง
- ถ้าเคยขอสำเร็จแต่มาผิดพลาดในภายหลัง อาจเพราะ EAB หมดอายุหรือใช้งานไม่ได้ ต้องขอใหม่
- ขอใบรับรองสำเร็จแต่บราวเซอร์แจ้งว่าเว็บไม่ปลอดภัย?
- ตรวจสอบว่าได้เพิ่มใบรับรองใหม่เข้าไปในเว็บไซต์บน ServBay และเปิดใช้งาน SSL แล้ว
- ลองล้าง cache ของ web browser หรือเข้าเว็บด้วยโหมดไม่ระบุตัวตน
- ตรวจสอบว่าไฟล์ hosts หรือ config เครือข่ายเครื่องคุณชี้ไปที่ ServBay ถูกต้อง
- ServBay จะต่ออายุให้อัตโนมัติเมื่อไร? โดยทั่วไป ServBay จะพยายามต่ออายุก่อนวันหมดอายุ เช่น 30 วัน ถ้าแอปทำงานอยู่และเชื่อมต่ออินเทอร์เน็ตได้ จะดำเนินการเบื้องหลังอัตโนมัติ
สรุป
ServBay มาพร้อมความสามารถ ACME ที่ครบถ้วนและใช้งานง่าย ช่วยให้นักพัฒนาขอและจัดการใบรับรอง SSL/TLS สำหรับเว็บไซต์พัฒนาในเครื่องได้อย่างสะดวกและปลอดภัยยิ่งขึ้นผ่าน DNS API ไม่เพียงแค่ลดความยุ่งยากในการตั้งค่า ยังช่วยให้สภาพแวดล้อมทดสอบและพัฒนาในเครื่องปลอดภัย ใกล้เคียงกับระบบจริง รองรับงานพัฒนาและทดสอบได้เต็มประสิทธิภาพ
หวังว่าบทความนี้จะช่วยให้คุณใช้งานฟีเจอร์ ACME เพื่อขอใบรับรอง SSL กับ ServBay ได้ราบรื่นและยกระดับประสบการณ์การพัฒนาในเครื่องของคุณ