วิธีใช้ SNI บน IIS Windows Server 2022 ให้หลายเว็บไซต์ใช้ SSL ร่วม IP เดียวกัน
ในอดีต หากต้องการติดตั้ง SSL ให้หลายเว็บไซต์บน IIS ผู้ดูแลระบบจำเป็นต้องใช้หลาย Public IP เพราะ SSL ไม่สามารถแยกได้ว่า Client กำลังเรียกเว็บไซต์ใดบน IP เดียวกัน
ปัจจุบัน IIS รองรับเทคโนโลยี SNI (Server Name Indication) ซึ่งช่วยให้หลายเว็บไซต์สามารถใช้ HTTPS และ SSL Certificate คนละใบ บน Public IP เดียวกันได้ ช่วยลดค่าใช้จ่ายและทำให้การบริหารจัดการ Web Server ง่ายขึ้นอย่างมาก
บทความนี้จะอธิบายการทำงานของ SNI วิธีตั้งค่าบน IIS Windows Server 2022 และแนวทางแก้ปัญหาที่พบบ่อยในการใช้งานจริง
🔐 SNI คืออะไร
SNI ย่อมาจาก
Server Name Indication
เป็นส่วนหนึ่งของ
TLS Protocol
SNI ทำให้ Browser ส่งชื่อเว็บไซต์ไปพร้อมกับการเชื่อมต่อ HTTPS
ตัวอย่าง
shop.comsiam.com
หรือ
server.comsiam.com
IIS จึงสามารถเลือก SSL Certificate ที่ถูกต้องได้
แม้ว่าทุกเว็บไซต์จะใช้ IP เดียวกัน
🚀 ข้อดีของ SNI
💰 ลดจำนวน Public IP
ไม่ต้องซื้อ IP หลายตัว
🌐 รองรับหลายเว็บไซต์
บน Server เครื่องเดียว
🔒 ใช้ SSL คนละใบได้
แต่ใช้ IP เดียวกัน
⚙️ บริหารจัดการง่าย
โดยเฉพาะ Web Hosting
🖥️ ตัวอย่างการใช้งาน
สมมุติว่ามีเว็บไซต์
www.comsiam.com
shop.comsiam.com
server.comsiam.com
ทั้งหมดอยู่บน
203.0.113.10
SNI จะช่วยให้แต่ละเว็บใช้ SSL คนละใบได้
โดยไม่ต้องเพิ่ม IP ใหม่
📋 สิ่งที่ต้องเตรียม
✅ IIS Windows Server 2022
✅ SSL Certificate ของแต่ละเว็บไซต์
✅ HTTPS Binding
✅ DNS ถูกต้อง
🔍 ตรวจสอบ Certificate ก่อน
เปิด
IIS Manager
เลือก
Server Certificates
ควรเห็น Certificate ของทุกเว็บไซต์
เช่น
www.comsiam.com
shop.comsiam.com
server.comsiam.com
🚀 วิธีเปิด SNI บน IIS
เปิด
IIS Manager
เลือกเว็บไซต์
คลิก
Bindings
เลือก
https
คลิก
Edit
🔑 เปิด SNI
ติ๊ก
Require Server Name Indication
จากนั้นเลือก Certificate
ที่ตรงกับเว็บไซต์
ตัวอย่าง
shop.comsiam.com SSL
กด
OK
🌐 กำหนด Host Name
ใน Binding
ใส่
shop.comsiam.com
หรือ
server.comsiam.com
ห้ามปล่อยว่าง
🔄 ทำซ้ำทุกเว็บไซต์
เว็บไซต์แต่ละตัว
ต้องมี
Host Name
SSL Certificate
SNI Enabled
ครบทั้งสามส่วน
🔍 ตรวจสอบ HTTPS Binding
ตัวอย่าง
| Site | Hostname | Port |
|---|---|---|
| www | www.comsiam.com | 443 |
| shop | shop.comsiam.com | 443 |
| server | server.comsiam.com | 443 |
ทุกเว็บสามารถใช้
443
พร้อมกันได้
⚡ ทดสอบหลังเปิด SNI
เปิด Browser
เข้า
https://www.comsiam.com
https://shop.comsiam.com
https://server.comsiam.com
ตรวจสอบ
🔒 SSL ถูกต้อง
🔒 Domain ตรง
🔒 ไม่มี Warning
🔍 ตรวจสอบ Certificate ที่ Browser ได้รับ
คลิก
🔒 แม่กุญแจ
เลือก
Certificate
ตรวจสอบ
Issued To
ต้องตรงกับเว็บไซต์ที่เปิด
🧪 ตรวจสอบผ่าน PowerShell
ดู HTTPS Binding
Get-WebBinding
ดูเว็บไซต์ทั้งหมด
Get-Website
❌ ปัญหาที่พบบ่อย
Browser แสดง Certificate ผิดเว็บ
สาเหตุ
Host Name ไม่ถูกต้อง
ลืมเปิด SNI
IIS ใช้ Certificate ตัวแรกแทน
Domain Name ว่าง
Binding ไม่สามารถแยกเว็บไซต์ได้
DNS ชี้ผิด
เว็บไซต์เปิดไปยัง Server อื่น
SSL หมดอายุ
Browser แจ้งเตือน
🔐 SNI รองรับ Browser ใดบ้าง
ปัจจุบันรองรับเกือบทั้งหมด
✅ Chrome
✅ Edge
✅ Firefox
✅ Safari
✅ Android
✅ iPhone
ระบบที่ไม่รองรับ
ส่วนใหญ่เป็น
Windows XP
Internet Explorer รุ่นเก่า
📊 SNI กับ Wildcard SSL
หลายคนสับสนระหว่างสองเทคโนโลยี
SNI
ช่วยให้หลายเว็บไซต์ใช้ IP เดียวกัน
Wildcard SSL
ช่วยให้หลาย Subdomain ใช้ Certificate เดียวกัน
สามารถใช้งานร่วมกันได้
🛡️ Best Practices
① เปิด SNI ทุกเว็บไซต์
② กำหนด Host Name เสมอ
③ ใช้ TLS 1.2 หรือ TLS 1.3
④ ตรวจสอบ SSL ทุกเดือน
⑤ ตั้งแจ้งเตือนวันหมดอายุ
⑥ ใช้ Certificate แยกตามเว็บไซต์
สำหรับองค์กรขนาดใหญ่
ทีมงาน comsiam มักใช้ SNI กับ IIS ทุกเครื่องที่ให้บริการหลายเว็บไซต์ เพราะช่วยลดต้นทุนด้าน Public IP ได้มาก และยังรองรับการบริหารจัดการ SSL Certificate ได้อย่างเป็นระบบ
🎯 สรุป
SNI เป็นเทคโนโลยีสำคัญที่ช่วยให้ IIS Windows Server 2022 สามารถให้บริการ HTTPS หลายเว็บไซต์บน Public IP เดียวกันได้ โดยแต่ละเว็บไซต์สามารถใช้ SSL Certificate ของตัวเองได้อย่างอิสระ
หากกำหนด Host Name, HTTPS Binding และ SSL Certificate อย่างถูกต้อง ผู้ดูแลระบบจะสามารถลดต้นทุนด้าน IP Address และเพิ่มความยืดหยุ่นในการบริหารจัดการ Web Server ได้อย่างมาก ซึ่งเป็นแนวทางมาตรฐานที่ทีมงาน comsiam ใช้งานจริงในระบบ Production และ Hosting Environment ปัจจุบัน