Let's Encrypt vs ZeroSSL ต่างกันอย่างไร เลือกอันไหนดี

SSL ฟรีกลายเป็นมาตรฐานของเว็บไซต์ในยุคนี้ Let's Encrypt เป็นเจ้าแรกที่ปฏิวัติวงการตั้งแต่ปี 2015 ส่วน ZeroSSL เป็นทางเลือกใหม่ที่ได้รับความนิยมเพิ่มขึ้นเรื่อย ๆ ตั้งแต่ปี 2020 — แต่ทั้งสองค่ายแตกต่างกันอย่างไร และค่ายไหนเหมาะกับการใช้งานแบบไหน?

บทความนี้เปรียบเทียบ Let's Encrypt กับ ZeroSSL ทุกแง่มุมที่นักพัฒนาและ Sysadmin ต้องตัดสินใจก่อนเลือกใช้ ตั้งแต่ระยะเวลา Cert, Wildcard, Rate Limit, ไปจนถึง ECC support

คำตอบสั้น ๆ: ถ้าใช้ Automation ผ่าน ACME (เช่น Certbot, acme.sh) — Let's Encrypt ยังเป็นมาตรฐานที่รองรับดีกว่า แต่ถ้าต้องการ Cert อายุยาว 90 วันแบบไม่ต้อง Automate หรือออก Cert ผ่าน UI ในเบราว์เซอร์ — ZeroSSL สะดวกกว่า

Let's Encrypt คืออะไร

Let's Encrypt เป็นองค์กรไม่แสวงหากำไรภายใต้ ISRG (Internet Security Research Group) ก่อตั้งโดย Mozilla, EFF, Cisco และ Akamai เริ่มออก Cert ฟรีให้ทุกคนตั้งแต่เดือนเมษายน 2016 ปัจจุบันออก Cert ไปแล้วเกินกว่า 3 พันล้านใบ

จุดเด่นคือ ออกแบบมาเพื่อ Automation ตั้งแต่วันแรก ผ่าน protocol ACME ที่กลายเป็นมาตรฐานของวงการ และเป็นค่ายเดียวที่รองรับโดยทุก Hosting / Control Panel ตั้งแต่ DirectAdmin, cPanel, Plesk ไปจนถึง Nginx Proxy Manager และ Caddy

ZeroSSL คืออะไร

ZeroSSL เป็นบริการของบริษัทออสเตรียชื่อ apilayer GmbH ออก Cert ฟรีโดยใช้ root CA ของ Sectigo (USERTrust RSA / ECC) เริ่มได้รับความนิยมเพราะ มี Web UI ใช้งานง่าย ออก Cert ได้โดยไม่ต้องตั้ง ACME client เอง

ปัจจุบัน ZeroSSL รองรับ ACME ด้วย และเป็นค่ายที่ผู้ใช้นิยมใช้สำรองคู่กับ Let's Encrypt เพื่อเลี่ยง Rate Limit หรือใช้กับโปรเจกต์ขนาดเล็กที่ไม่อยากตั้ง Automation

ตารางเปรียบเทียบหลัก

คุณสมบัติLet's EncryptZeroSSL
ราคาฟรี ไม่จำกัดฟรี 3 cert / 90 วัน (จำกัด)
อายุ Certificate90 วัน90 วัน (ฟรี) / 1 ปี (เสียเงิน)
Wildcard Support✅ (DNS-01 challenge)✅ (DNS-01 challenge)
Multi-domain (SAN)สูงสุด 100 domain ต่อ certสูงสุด 3 domain (ฟรี)
ACME ProtocolACMEv2 (มาตรฐาน)ACMEv2 + REST API
Web UI (manual)❌ ไม่มี✅ มี
ECC (ECDSA) Certificate✅ default
Rate Limit (ต่อ domain / สัปดาห์)50 cert / domain / 7 วัน3 cert / 90 วัน (free)
Trust ในเบราว์เซอร์ISRG Root X1, X2USERTrust (Sectigo)
OCSP Stapling
การออก Cert ผ่าน UIผ่าน Hosting Panel เท่านั้นออกผ่าน zerossl.com ได้

ความแตกต่างเชิงปฏิบัติ

1. ระยะเวลา Cert เท่ากันที่ 90 วัน

ทั้งสองค่ายออก Cert ฟรีอายุ 90 วันเท่ากัน — Let's Encrypt ตั้งเป็นค่าตายตัวเพราะ เชื่อในแนวคิด "Cert อายุสั้น + Auto-renew" ส่วน ZeroSSL ให้เลือก 90 วัน (ฟรี) หรือ 1 ปี (จ่ายเงิน) ได้

ในทางปฏิบัติ หากคุณตั้ง Auto-renew (เช่น certbot renew ใน cron) อายุ Cert ไม่สำคัญเลย เพราะระบบจะต่ออายุก่อนหมดอายุ 30 วัน ทั้งคู่ใช้งานได้เท่ากัน

2. Rate Limit ของ Let's Encrypt เข้มกว่าในบางมุม

Let's Encrypt มี Rate Limit ที่ 50 certificate ต่อ Registered Domain ต่อ 7 วัน สำหรับ public domain (สูงพอใช้สำหรับเว็บส่วนใหญ่) แต่บางครั้งใน Shared Hosting ที่ออก Cert พร้อมกันหลายลูกค้า รวมกันเกิน — จะถูก block ชั่วคราว

ZeroSSL ไม่มี Rate Limit ระดับ domain แต่จำกัดที่ 3 cert ต่อบัญชีฟรี / 90 วัน เหมาะกับเว็บคน 1-2 เว็บไม่ใช่ Hosting ผู้ให้บริการ

3. ECC Default = เร็วและประหยัด CPU

Let's Encrypt ออก Cert แบบ ECDSA P-256 เป็น default ตั้งแต่ปี 2024 — ขนาดเล็กกว่า RSA-2048 ถึง 8 เท่า ใช้ CPU น้อยกว่า เหมาะกับ Mobile และ Server Throughput สูง

ZeroSSL รองรับ ECC แต่ default ยังเป็น RSA — ต้องระบุ --ecc เองใน acme.sh หรือเลือกใน UI

4. การใช้งานบน Hosting / Control Panel

ทุก DirectAdmin / cPanel / Plesk รุ่นปัจจุบันมาพร้อม Let's Encrypt build-in — กดคลิกเดียวออก Cert ได้เลย ZeroSSL ต้องตั้งค่า ACME endpoint เอง หรือใช้ acme.sh สั่ง install ผ่าน command line

⚠️ หากย้ายค่าย: Cert ที่ออกแล้วจะใช้ต่อจนหมดอายุ แต่ตอน Auto-renew ระบบจะดึงจาก CA ที่ตั้งใหม่ ให้ตรวจ cron และ --server URL ใน acme.sh ก่อนสลับ มิฉะนั้น Cert อาจ renew ไม่ได้

เลือกแบบไหนดี — สรุปตามเคส

คำสั่งตัวอย่าง — สลับ CA ใน acme.sh

เปลี่ยน default CA จาก Let's Encrypt → ZeroSSL:

acme.sh --set-default-ca --server zerossl

กลับมาใช้ Let's Encrypt:

acme.sh --set-default-ca --server letsencrypt

การตั้งค่า ACME Endpoint และ ZeroSSL EAB Key

ไม่เหมือน Let's Encrypt ที่ทุก ACME client รองรับโดยไม่ต้องตั้งค่าอะไรเพิ่ม ZeroSSL ต้องการ External Account Binding (EAB) ซึ่งเป็น Kid + HMAC Key ที่ได้จากการสมัคร Account ฟรีที่ zerossl.com ก่อน

ขั้นตอนตั้งค่า ZeroSSL กับ acme.sh:

# ลงทะเบียน ZeroSSL EAB credentials ก่อน
acme.sh --register-account -m [email protected] \
  --server zerossl \
  --eab-kid <your-kid> \
  --eab-hmac-key <your-hmac-key>

# ออก cert ใหม่โดยใช้ ZeroSSL
acme.sh --issue -d example.com -d www.example.com \
  --webroot /var/www/html \
  --server zerossl

ถ้าข้ามขั้นตอน EAB ไป acme.sh จะแจ้ง Error {"error":{"type":"urn:ietf:params:acme:error:externalAccountRequired"}} ทำให้หลายคนสับสน ให้กลับไปสร้าง EAB Key จาก Developer API ใน Dashboard ZeroSSL ก่อน

ตารางเปรียบเทียบ ACME Client Support

ACME Client Let's Encrypt ZeroSSL
Certbot✅ Default⚠️ ต้องตั้ง --server URL เอง
acme.sh✅ ค่า default--server zerossl
DirectAdmin (built-in)✅ กดคลิกเดียว❌ ไม่รองรับ built-in
Plesk AutoSSL✅ built-in❌ ไม่รองรับ
Caddy✅ auto⚠️ ต้องระบุ CA URL
Nginx Proxy Manager✅ built-in⚠️ เวอร์ชั่นใหม่บางตัวรองรับ

Root CA และความน่าเชื่อถือในระยะยาว

ความแตกต่างที่สำคัญแต่มักถูกมองข้ามคือ Root CA ที่ใช้ ซึ่งส่งผลต่อการ Trust ในเบราว์เซอร์รุ่นเก่าและระบบที่ไม่ได้อัปเดต

Let's Encrypt Root Chain

Let's Encrypt ใช้ ISRG Root X1 (RSA 4096) และ ISRG Root X2 (ECDSA P-384) เป็น Root CA ของตัวเอง ซึ่งได้รับความไว้วางใจจากเบราว์เซอร์และ OS ทุกตัวตั้งแต่ปี 2021 อย่างไรก็ตามอุปกรณ์ที่เก่ามากหรือ Android เวอร์ชั่น 7.1.1 ลงไปอาจมีปัญหาเนื่องจาก Cross-Sign Chain กับ DST Root CA X3 หมดอายุไปแล้วในปี 2021

ZeroSSL Root Chain

ZeroSSL ใช้ Root CA ของ Sectigo (USERTrust RSA) ซึ่งมีประวัติความน่าเชื่อถือมาตั้งแต่ปี 1999 ทำให้รองรับเบราว์เซอร์และ OS รุ่นเก่าได้ดีกว่าในบางกรณี โดยเฉพาะอุปกรณ์ IoT หรือ Embedded System ที่ไม่ได้รับการอัปเดต Root Store

คำแนะนำ: สำหรับเว็บทั่วไปบนเบราว์เซอร์สมัยใหม่ Root CA ไม่ได้ต่างกันในแง่ผลลัพธ์จริง แต่ถ้าต้องรองรับอุปกรณ์เก่า (IoT, Android < 7, Windows XP) ZeroSSL มีความได้เปรียบด้าน Trust Chain ที่ยาวกว่า

กรณีพิเศษ — ใช้ทั้งสองค่ายพร้อมกัน (Dual-CA)

นักพัฒนาขั้นสูงบางคนเลือกตั้งค่า Dual-CA คือออก Cert จากทั้ง Let's Encrypt และ ZeroSSL บน Server เดียวกัน แล้วใช้ Load Balancer หรือ Failover Logic เพื่อเปลี่ยน CA โดยอัตโนมัติถ้าฝั่งใดฝั่งหนึ่งมีปัญหา

วิธีนี้มีประโยชน์ในกรณี:

ใน acme.sh ตั้งค่าโดยออก Cert แยก Domain + CA แล้วใช้ Hook Script เพื่อ Deploy ทั้งสองใบไปยัง Path ที่ต่างกัน จากนั้นให้ Nginx โหลด Cert ตาม Priority ที่กำหนด

# ออก cert จาก Let's Encrypt
acme.sh --issue -d example.com --server letsencrypt \
  --keylength ec-256 -w /var/www/html

# ออก cert คู่จาก ZeroSSL (EAB ต้องตั้งไว้ก่อน)
acme.sh --issue -d example.com --server zerossl \
  --keylength ec-256 -w /var/www/html \
  --cert-file /etc/ssl/zerossl/cert.pem \
  --key-file /etc/ssl/zerossl/key.pem

การ Renew Certificate อัตโนมัติ — Let's Encrypt vs ZeroSSL

จุดเด่นที่สำคัญของ Let's Encrypt คือระบบ Auto-renew ที่ทำงานได้โดยไม่ต้องแตะ ไม่ว่าจะใช้ Certbot, acme.sh หรือ Hosting Panel — ทุกตัวมี Hook สำหรับ Deploy Cert ใหม่หลัง Renew โดยอัตโนมัติ ทำให้ผู้ดูแลระบบไม่ต้องจำวันหมดอายุ

ZeroSSL ก็รองรับ Auto-renew ผ่าน ACME เช่นกัน แต่ต้องตั้งค่า EAB ก่อน และถ้าใช้แบบ Manual ผ่าน Web UI จะต้อง Download Cert ใหม่และอัพโหลดขึ้น Server ด้วยตัวเอง ซึ่งเสี่ยงต่อการลืมและทำให้ Cert หมดอายุโดยไม่ตั้งใจ

แนวปฏิบัติที่ดี: ไม่ว่าจะใช้ Let's Encrypt หรือ ZeroSSL ควรตั้ง Cron Job ตรวจ Cert ทุกวันและ Renew อัตโนมัติ อย่าพึ่งการ Renew ด้วยมือ — Cert หมดอายุจะทำให้เว็บแสดง Error ทันทีโดยไม่มีเตือนล่วงหน้า

SSL ฟรีพอใช้กับเว็บธุรกิจไหม

SSL ฟรีจากทั้งสองค่ายให้การเข้ารหัสระดับเดียวกับ Paid SSL ทุกประการ — เบราว์เซอร์มองว่าน่าเชื่อถือเหมือนกันหมด ความต่างมีเฉพาะเรื่อง Warranty (เคลมเมื่อ CA ออก Cert ผิด) และ OV / EV ที่ต้องตรวจสอบตัวตนองค์กร

สำหรับเว็บข้อมูล, บล็อก, portfolio, หรือ SaaS ทั่วไป — SSL ฟรีเพียงพอ ส่วนเว็บการเงิน, ธนาคาร, หรือ E-Commerce ที่ต้องการ Trust seal — ลงทุนกับ OV หรือ EV จะดีกว่า

ต้องการ SSL Wildcard หรือ EV SSL Certificate ของจริง?

AsiaGB ขาย RapidSSL DV, Wildcard และ GeoTrust EV พร้อม Warranty $1.25M ติดตั้งฟรีบน DirectAdmin ทุกแพ็กเกจ

ดูราคา SSL Certificate