วิธีเปิด HSTS บน IIS Windows Server 2022 ป้องกัน HTTPS Downgrade Attack และเพิ่มความปลอดภัยเว็บไซต์

 แม้เว็บไซต์จะติดตั้ง SSL Certificate และบังคับ HTTPS เรียบร้อยแล้ว แต่ยังมีช่องโหว่ประเภทหนึ่งที่ผู้โจมตีสามารถใช้บังคับให้ผู้ใช้งานกลับไปเชื่อมต่อผ่าน HTTP ได้ ซึ่งเรียกว่า HTTPS Downgrade Attack หรือ SSL Stripping Attack

วิธีป้องกันที่ได้รับการยอมรับทั่วโลกคือการเปิดใช้งาน HSTS (HTTP Strict Transport Security) ซึ่งจะสั่งให้ Browser จดจำว่าเว็บไซต์นี้ต้องใช้งานผ่าน HTTPS เท่านั้น

ปัจจุบันเว็บไซต์ขนาดใหญ่ เช่น ธนาคาร, Cloud Provider, ระบบ E-Commerce และเว็บไซต์องค์กรระดับโลก ล้วนเปิดใช้งาน HSTS ทั้งหมด

บทความนี้จะอธิบายวิธีเปิด HSTS บน IIS Windows Server 2022 อย่างละเอียด พร้อมแนวทางใช้งานอย่างปลอดภัย


🔐 HSTS คืออะไร

HSTS ย่อมาจาก

HTTP Strict Transport Security

เป็น HTTP Header ที่ส่งจาก Web Server ไปยัง Browser เพื่อบังคับให้ใช้งาน HTTPS เท่านั้น


🚨 HSTS ป้องกันอะไรได้บ้าง

① 🔒 HTTPS Downgrade Attack

ป้องกันการบังคับให้ผู้ใช้งานกลับไปใช้ HTTP

② 🔒 SSL Stripping Attack

ป้องกันการดักแปลง HTTPS เป็น HTTP

③ 🔒 Man-in-the-Middle Attack

ลดความเสี่ยงจากการดักจับข้อมูลระหว่างทาง

④ 🔒 Human Error

ป้องกันผู้ใช้งานพิมพ์ URL แบบ HTTP เอง


🌐 ตัวอย่างก่อนเปิด HSTS

ผู้ใช้พิมพ์

http://example.com

Browser จะลองเชื่อมต่อ HTTP ก่อน

แล้วค่อย Redirect ไป HTTPS

ในช่วงนี้ยังมีความเสี่ยงด้าน Security


🌐 ตัวอย่างหลังเปิด HSTS

Browser จะเชื่อมต่อ

https://example.com

ทันที

โดยไม่ลองเชื่อมต่อ HTTP อีก


📋 สิ่งที่ต้องเตรียมก่อนเปิด HSTS

① SSL Certificate ทำงานปกติ

② HTTPS Binding ทำงานเรียบร้อย

③ Redirect HTTP → HTTPS แล้ว

④ ไม่มี Mixed Content

⑤ เว็บไซต์ทุกหน้ารองรับ HTTPS

หากยังไม่พร้อม ไม่ควรเปิด HSTS


🖥️ วิธีเปิด HSTS ผ่าน IIS Manager

เปิด

inetmgr

หรือ

IIS Manager

เลือกเว็บไซต์


เปิด

HTTP Response Headers

คลิก

Add...

① เพิ่ม Header ใหม่

Name

Strict-Transport-Security

Value

max-age=31536000

กด

OK

🔍 ค่า max-age คืออะไร

หน่วยเป็นวินาที

ตัวอย่าง

31536000

เท่ากับ

365 วัน

ตัวอย่าง

2592000

เท่ากับ

30 วัน

⚙️ วิธีเปิด HSTS ผ่าน web.config

เปิดไฟล์

web.config

เพิ่ม

<system.webServer>
  <httpProtocol>
    <customHeaders>
      <add name="Strict-Transport-Security"
      value="max-age=31536000" />
    </customHeaders>
  </httpProtocol>
</system.webServer>

🌍 เปิด HSTS ให้ทุก Subdomain

หากต้องการครอบคลุม Subdomain ทั้งหมด

ใช้ค่า

max-age=31536000; includeSubDomains

ตัวอย่าง

example.com
api.example.com
mail.example.com
vpn.example.com

จะถูกบังคับ HTTPS ทั้งหมด


🚀 เปิด HSTS Preload

ระดับสูงสุด

max-age=31536000; includeSubDomains; preload

Browser จะจดจำเว็บไซต์ไว้ล่วงหน้า

แม้ผู้ใช้งานจะไม่เคยเข้าเว็บมาก่อน


⚠️ ข้อควรระวังก่อนเปิด HSTS

เมื่อ Browser จดจำ HSTS แล้ว

จะไม่สามารถเข้าเว็บไซต์ผ่าน HTTP ได้อีก

ดังนั้นต้องมั่นใจว่า

✅ SSL ถูกต้อง

✅ HTTPS ใช้งานได้ทุกหน้า

✅ Subdomain ทั้งหมดรองรับ HTTPS


🔍 วิธีตรวจสอบ HSTS

เปิดเว็บไซต์

https://example.com

กด

F12

เลือก

Network

ดู Response Header

ควรพบ

Strict-Transport-Security

⚡ ตรวจสอบผ่าน PowerShell

Invoke-WebRequest https://example.com

ตรวจสอบ Header ที่ตอบกลับ


❌ ปัญหาที่พบบ่อย

HSTS Header ไม่แสดง

ตรวจสอบว่า Apply แล้วหรือยัง


Header ซ้ำ

ตั้งค่าซ้ำทั้ง IIS และ web.config


Subdomain เข้าไม่ได้

แต่เปิด includeSubDomains


Browser ยังไม่เห็น HSTS

ล้าง Cache และเปิดใหม่


📋 HSTS Deployment Checklist

✅ SSL Certificate ถูกต้อง

✅ HTTPS Redirect ทำงาน

✅ ไม่มี Mixed Content

✅ ทุกหน้าใช้ HTTPS

✅ ทดสอบ Browser หลักครบ

✅ Backup Configuration แล้ว


🛡️ Best Practices

① เปิด HTTPS Redirect ก่อนเสมอ

② ใช้ TLS 1.2 หรือ TLS 1.3

③ เริ่มจาก max-age ระยะสั้น

เช่น

86400

(1 วัน)


④ ทดสอบก่อนเพิ่มเป็น 1 ปี

31536000

⑤ ใช้ includeSubDomains เมื่อมั่นใจแล้ว


⑥ ใช้ preload เฉพาะเว็บไซต์ที่พร้อมจริง

ทีมงาน comsiam มักเริ่มต้นด้วย HSTS ระยะเวลา 1 วันก่อน จากนั้นค่อยเพิ่มเป็น 30 วัน และ 365 วันเมื่อมั่นใจว่าระบบ HTTPS ทำงานได้สมบูรณ์ทุกส่วน เพื่อลดความเสี่ยงในการล็อกผู้ใช้งานออกจากเว็บไซต์โดยไม่ตั้งใจ


🎯 สรุป

HSTS เป็นกลไกความปลอดภัยที่ช่วยบังคับให้ Browser ใช้งาน HTTPS เท่านั้น ลดความเสี่ยงจาก HTTPS Downgrade Attack, SSL Stripping และการดักจับข้อมูลระหว่างทาง

สำหรับ IIS Windows Server 2022 การเปิด HSTS ทำได้ง่ายผ่าน HTTP Response Headers หรือ web.config แต่ควรตรวจสอบ SSL, HTTPS Redirect และ Subdomain ต่าง ๆ ให้พร้อมก่อนเปิดใช้งาน เพื่อให้เว็บไซต์มีความปลอดภัยตามมาตรฐานองค์กรระดับมืออาชีพและรองรับการใช้งานในระยะยาว

Popular posts from this blog

Windows Server 2022 ยังน่าใช้ในปีนี้หรือไม่? คำตอบสำหรับคนกำลังวางระบบใหม่

สเปกเครื่องสำหรับติดตั้ง Windows Server 2022 เลือกอย่างไรให้คุ้มและใช้งานได้ยาว

Windows Server 2022 คืออะไร? คู่มือสำหรับมือใหม่