SAN Certificate คืออะไร ครอบหลายโดเมนด้วย SSL ใบเดียว

SAN Certificate คืออะไร

SAN Certificate (Subject Alternative Names Certificate) หรือที่รู้จักในชื่อ Multi-Domain SSL หรือ UCC (Unified Communications Certificate) คือ SSL Certificate หนึ่งใบที่สามารถครอบคลุมหลายโดเมนหรือหลาย Hostname ที่แตกต่างกันโดยสิ้นเชิงได้ในใบเดียว

ตัวอย่างเช่น บริษัทที่มีหลายเว็บไซต์อาจใช้ SAN Certificate ใบเดียวครอบคลุม:

example.com
example.co.th
example.net
shop.example.com
api.example.com
another-brand.com

ทั้งหมดนี้ถูกระบุเป็น Subject Alternative Names ใน Certificate เดียวกัน แทนที่จะต้องซื้อ SSL Certificate แยกกัน 6 ใบ

SAN Certificate ต่างจาก Wildcard SSL อย่างไร

คำถามที่พบบ่อยที่สุดคือความแตกต่างระหว่าง SAN Certificate และ Wildcard SSL ซึ่งมีความแตกต่างสำคัญดังนี้:

หัวข้อ SAN Certificate Wildcard SSL
ครอบโดเมนต่างกัน ✓ ได้ (example.com + another.com + shop.net) ✗ ได้เฉพาะ Subdomain เดียวกัน
จำนวน Subdomain จำกัดตาม SAN entries ที่ซื้อ ไม่จำกัด Subdomain ใน domain เดียวกัน
ตัวอย่างการครอบ example.com, another.com, shop.net *.example.com (ครอบทุก Subdomain)
เพิ่ม domain ภายหลัง ต้อง reissue Certificate ไม่ต้องเปลี่ยน Certificate
ราคา (AsiaGB) ขึ้นกับจำนวน SAN entries เริ่มต้น 5,000 บาท/ปี
เหมาะกับ มีหลายโดเมนต่างกัน เช่น .com + .co.th + .net มีหลาย Subdomain ของ domain เดียวกัน

กระบวนการออก SAN Certificate ทำงานอย่างไร

เมื่อ CA (Certificate Authority) ออก SAN Certificate ขั้นตอนจะคล้ายกับ SSL ธรรมดาแต่มีขั้นตอนพิเศษเพิ่มเติม

  1. สร้าง CSR (Certificate Signing Request) — ระบุ Primary Domain (Common Name) พร้อมกับ SAN entries ทุกโดเมนที่ต้องการครอบ
  2. Domain Validation (DV SAN) — CA จะตรวจสอบสิทธิ์การเป็นเจ้าของโดเมนทุกโดเมนที่ระบุเป็น SAN entries ไม่ใช่แค่ Primary Domain
  3. Organization Validation (OV/EV SAN) — นอกจาก Domain Validation ยังต้องยืนยันตัวตนองค์กรด้วย
  4. ออก Certificate — เมื่อผ่านการตรวจสอบครบทุกโดเมนแล้ว CA จะออก Certificate ที่ระบุ SAN entries ทั้งหมดในไฟล์เดียว
  5. ติดตั้งบน Server — ติดตั้ง Certificate ไฟล์เดียวนี้บน Web Server ซึ่งจะครอบคลุมทุกโดเมนที่ระบุ

การ Validate แต่ละโดเมนใน SAN entries สามารถทำได้ 3 วิธี ได้แก่ DNS Validation (เพิ่ม TXT Record), HTTP Validation (วาง Verification File บนเว็บ) หรือ Email Validation (รับ Email ยืนยันจากที่อยู่ที่กำหนด) CA ส่วนมากอนุญาตให้ใช้วิธีต่างกันสำหรับแต่ละโดเมนใน Certificate เดียวกัน

ประเภท SAN Certificate เวลาออก Certificate การตรวจสอบ เหมาะกับ
DV SANไม่กี่นาทีตรวจสิทธิ์โดเมนอย่างเดียวเว็บไซต์ทั่วไป, Blog, E-Commerce
OV SAN1–3 วันทำการตรวจสิทธิ์โดเมน + ยืนยันองค์กรธุรกิจ, ระบบองค์กร
EV SAN3–7 วันทำการตรวจสิทธิ์โดเมน + ยืนยันองค์กรอย่างเข้มงวดธนาคาร, สถาบันการเงิน, รัฐบาล

ประโยชน์หลักของ SAN Certificate

การใช้ SAN Certificate แทนการซื้อ SSL หลายใบมีข้อได้เปรียบหลายประการ:

เมื่อไหร่ควรใช้ SAN Certificate

SAN Certificate เหมาะกับกรณีเหล่านี้:

เคล็ดลับ: ถ้ามีหลาย Subdomain ของ domain เดียวกัน เช่น shop.example.com, api.example.com, blog.example.com แนะนำให้ใช้ Wildcard SSL (*.example.com) ซึ่งครอบทุก Subdomain ได้โดยไม่มีขีดจำกัด SAN Certificate เหมาะสำหรับโดเมนที่ต่างกันอย่างสิ้นเชิงมากกว่า

วิธีตรวจสอบ SAN ใน Certificate ที่มีอยู่

ตรวจสอบ SAN entries ในคำสั่ง OpenSSL:

openssl s_client -connect example.com:443 2>/dev/null | \
  openssl x509 -noout -text | grep -A 10 "Subject Alternative Name"

ผลลัพธ์จะแสดง DNS entries ทั้งหมดที่อยู่ใน Certificate เช่น DNS:example.com, DNS:example.co.th, DNS:www.example.com

SAN Certificate กับ Let's Encrypt

Let's Encrypt รองรับ SAN Certificate ฟรี สามารถสร้าง Certificate ที่ครอบได้ถึง 100 domain ใน Certificate เดียว ผ่านคำสั่ง Certbot:

certbot certonly --webroot \
  -w /var/www/example \
  -d example.com \
  -d example.co.th \
  -d shop.example.com \
  --email [email protected] \
  --agree-tos

อย่างไรก็ตาม Let's Encrypt ให้เฉพาะ DV SSL ถ้าต้องการ OV หรือ EV SAN Certificate ต้องซื้อจาก CA เช่น DigiCert หรือ GeoTrust ซึ่ง AsiaGB ให้บริการอยู่

SAN Certificate กับ IP Address

SAN Certificate สามารถระบุ IP Address เป็น SAN entry ได้ด้วย เรียกว่า IP SAN หรือ IP SSL เหมาะสำหรับระบบที่ต้องการ HTTPS เพื่อเข้า IP โดยตรง เช่น internal API server, monitoring dashboard โดยไม่ต้องผ่านชื่อ domain แต่ Let's Encrypt ไม่รองรับ IP SAN ต้องซื้อ paid SSL เท่านั้น

คำถามที่พบบ่อย (FAQ)

SAN Certificate 1 ใบครอบได้กี่โดเมน?

ขึ้นอยู่กับ Certificate ที่ซื้อและ CA ที่ออก SAN Certificate ทั่วไปมักให้ 3–250 SAN entries ต่อใบ โดยมีราคาเพิ่มตามจำนวน domain ที่เพิ่มขึ้น Let's Encrypt ให้ได้สูงสุด 100 domain ต่อ Certificate

เพิ่ม domain เข้า SAN Certificate ที่มีอยู่แล้วได้ไหม?

ได้ แต่ต้อง Reissue Certificate ใหม่ กระบวนการ Reissue คือการขอ Certificate ใหม่ที่มี SAN entries เพิ่มขึ้น Certificate เดิมจะถูก Revoke โดยอัตโนมัติเมื่อ Certificate ใหม่ออกแล้ว ส่วนมากไม่มีค่าใช้จ่ายเพิ่มเติมสำหรับ Reissue ภายในอายุที่ซื้อมา แต่ต้องตรวจสอบกับ CA ก่อน

SAN Certificate รองรับ Wildcard ใน SAN entries ด้วยได้ไหม?

ได้ SAN Certificate สามารถมีทั้ง exact domain และ wildcard ผสมกันได้ เช่น example.com + *.example.com + another.com + *.another.com ใน Certificate เดียว Certificate แบบนี้เรียกว่า Multi-Domain Wildcard SSL และมีราคาสูงกว่าปกติ

การติดตั้ง SAN Certificate บน Web Server

หลังจาก CA ออก SAN Certificate ให้แล้ว ขั้นตอนการติดตั้งบน Web Server จะคล้ายกับ SSL ทั่วไปแต่มีจุดที่ต้องระวังเพิ่มเติม โดยเฉพาะเรื่องการ Configure Virtual Host ให้รองรับหลายโดเมนในเซิร์ฟเวอร์เดียวกัน

การติดตั้งบน Apache Web Server

ใน Apache แต่ละโดเมนที่อยู่ใน SAN Certificate ต้องมี Virtual Host Block ของตัวเอง โดยทั้งหมดชี้ไปยังไฟล์ Certificate เดียวกัน ตัวอย่างการตั้งค่าสำหรับ 2 โดเมนในใบเดียว

<VirtualHost *:443>
  ServerName example.com
  SSLEngine on
  SSLCertificateFile     /etc/ssl/certs/san-certificate.crt
  SSLCertificateKeyFile  /etc/ssl/private/san-certificate.key
  SSLCertificateChainFile /etc/ssl/certs/ca-bundle.crt
</VirtualHost>

<VirtualHost *:443>
  ServerName example.co.th
  SSLEngine on
  SSLCertificateFile     /etc/ssl/certs/san-certificate.crt
  SSLCertificateKeyFile  /etc/ssl/private/san-certificate.key
  SSLCertificateChainFile /etc/ssl/certs/ca-bundle.crt
</VirtualHost>

การติดตั้งบน Nginx Web Server

ใน Nginx ใช้ server_name directive ระบุหลายโดเมนใน Server Block เดียวได้เลย ซึ่งง่ายกว่า Apache สำหรับกรณีที่หลายโดเมนชี้ไปเนื้อหาเดียวกัน

server {
  listen 443 ssl;
  server_name example.com example.co.th;

  ssl_certificate     /etc/ssl/certs/san-certificate.crt;
  ssl_certificate_key /etc/ssl/private/san-certificate.key;
}
ไฟล์ที่ได้รับจาก CA ใช้ทำอะไร ชื่อ Directive บน Apache/Nginx
certificate.crtตัว Certificate หลัก (มี SAN entries)SSLCertificateFile / ssl_certificate
private.keyPrivate Key (เก็บเป็นความลับ)SSLCertificateKeyFile / ssl_certificate_key
ca-bundle.crtIntermediate CA ChainSSLCertificateChainFile / (ใน nginx รวมกับ .crt ได้)

ข้อควรระวังและข้อจำกัดของ SAN Certificate

แม้ SAN Certificate จะให้ประโยชน์มาก แต่มีข้อจำกัดที่ต้องเข้าใจก่อนตัดสินใจเลือกใช้ เพื่อไม่ให้เกิดปัญหาในภายหลัง

สรุปการเลือกใช้: ถ้ามีโดเมนต่างกันอย่างสิ้นเชิง (ต่าง TLD, ต่างแบรนด์) ใช้ SAN Certificate — ถ้ามีหลาย Subdomain ของโดเมนเดียวกัน ใช้ Wildcard SSL — ถ้ามีทั้งสองแบบ ใช้ Multi-Domain Wildcard SSL ที่รองรับทั้ง SAN entries และ Wildcard ในใบเดียว

การเปรียบเทียบค่าใช้จ่ายจริง: SAN Certificate vs ซื้อแยก

หลายองค์กรยังไม่แน่ใจว่า SAN Certificate คุ้มค่ากว่าซื้อ SSL แยกกันหรือไม่ ตัวอย่างการคำนวณต้นทุนจริงสำหรับองค์กรที่มี 5 โดเมน

สถานการณ์ ตัวเลือก ค่าใช้จ่าย งานบริหารจัดการ
5 โดเมนต่างกัน (ต่าง TLD)DV SSL แยก 5 ใบ (RapidSSL)5 × 1,000 = 5,000 บาท/ปี5 วันหมดอายุ, 5 ใบ
5 โดเมนต่างกัน (ต่าง TLD)SAN Certificate 5 entriesราคาตามจำนวน SAN1 วันหมดอายุ, 1 ใบ
10 Subdomain โดเมนเดียวDV SSL แยก 10 ใบ10 × 1,000 = 10,000 บาท/ปี10 วันหมดอายุ
10 Subdomain โดเมนเดียวWildcard SSL (RapidSSL)5,000 บาท/ปี ไม่จำกัด Subdomain1 วันหมดอายุ, 1 ใบ

นอกจากค่าใช้จ่าย ต้นทุนแฝงที่มักถูกมองข้ามคือเวลาที่ใช้บริหารจัดการ Certificate หลายใบ ถ้าลืมต่ออายุแม้ใบเดียว เบราว์เซอร์จะแสดงคำเตือน "Your connection is not private" ซึ่งส่งผลโดยตรงต่อความน่าเชื่อถือของแบรนด์และอัตราการใช้งานเว็บไซต์

การ Monitor วันหมดอายุ SAN Certificate

เนื่องจาก SAN Certificate ครอบคลุมหลายโดเมน การปล่อยให้หมดอายุจะกระทบทุกโดเมนในใบเดียวกันพร้อมกัน จึงต้องวางระบบ Monitor และแจ้งเตือนล่วงหน้าให้รัดกุมกว่า SSL แบบธรรมดา

# ตรวจสอบวันหมดอายุ
echo | openssl s_client -connect example.com:443 2>/dev/null \
  | openssl x509 -noout -dates

# ตรวจสอบ SAN entries ทั้งหมด
echo | openssl s_client -connect example.com:443 2>/dev/null \
  | openssl x509 -noout -text | grep -A5 "Subject Alternative"

AsiaGB มีบริการ SSL Certificate ครบวงจร ตั้งแต่ DV SAN Certificate สำหรับเว็บไซต์ทั่วไป ไปจนถึง OV และ EV SAN Certificate สำหรับองค์กรและสถาบันการเงิน ทีมงานพร้อมแนะนำ SAN entries ที่เหมาะสมกับโครงสร้างโดเมนของคุณ และช่วย Reissue เมื่อต้องเพิ่มโดเมนใหม่

ต้องการ SSL Certificate สำหรับหลายโดเมน?

AsiaGB ให้บริการ SSL Certificate ครบทุกประเภท DV SSL เริ่มต้น 1,000 บาท/ปี Wildcard SSL 5,000 บาท/ปี และ Multi-Domain SAN Certificate จาก RapidSSL, GeoTrust, DigiCert

ดู SSL Certificate ทั้งหมด