วิธีบังคับ HTTPS บน IIS Windows Server 2022 ทุกหน้าเว็บไซต์ เพิ่มความปลอดภัยและ SEO
หลังจากติดตั้ง SSL Certificate บน IIS Windows Server 2022 เรียบร้อยแล้ว หลายคนเข้าใจว่าเว็บไซต์ปลอดภัยทันที แต่ในความเป็นจริง หากผู้ใช้งานยังสามารถเข้าเว็บไซต์ผ่าน HTTP ได้ ข้อมูลบางส่วนอาจยังถูกส่งแบบไม่เข้ารหัส
การบังคับ HTTPS (Force HTTPS) คือการกำหนดให้ผู้ใช้งานทุกคนเข้าเว็บไซต์ผ่าน HTTPS เท่านั้น ไม่ว่าจะพิมพ์ URL แบบ HTTP หรือกดลิงก์เก่าจากที่ใดก็ตาม ระบบจะเปลี่ยนไปใช้ HTTPS อัตโนมัติ
นอกจากด้านความปลอดภัยแล้ว Google ยังใช้ HTTPS เป็นหนึ่งในปัจจัยด้าน SEO อีกด้วย ดังนั้นเว็บไซต์สมัยใหม่ควรเปิดใช้งาน HTTPS 100% ทุกหน้า
🔒 ทำไมต้องบังคับ HTTPS
หากเว็บไซต์เปิดทั้ง
http://yourdomain.com
และ
https://yourdomain.com
พร้อมกัน จะเกิดปัญหาหลายอย่าง
⚠️ ข้อมูลอาจถูกดักจับ
ข้อมูล Login หรือ Form ต่าง ๆ อาจถูกส่งผ่าน HTTP
⚠️ Duplicate Content
Google อาจมองว่าเป็นคนละ URL
เช่น
http://comsiam.com
และ
https://comsiam.com
⚠️ SEO ลดลง
คะแนน SEO อาจกระจายไปหลาย URL
⚠️ Browser แจ้งเตือนไม่ปลอดภัย
Chrome และ Edge จะแสดง
Not Secure
เมื่อเข้าเว็บผ่าน HTTP
✅ วิธีตรวจสอบว่าเว็บไซต์ยังเปิด HTTP อยู่หรือไม่
ลองเปิด
http://yourdomain.com
หากยังเข้าได้โดยไม่ Redirect
แสดงว่ายังไม่ได้บังคับ HTTPS
🖥️ วิธีที่ 1 ใช้ IIS HTTP Redirect
เปิด
IIS Manager
เลือกเว็บไซต์
ดับเบิลคลิก
HTTP Redirect
ติ๊ก
Redirect requests to this destination
ใส่
https://yourdomain.com
เลือก
Only redirect requests to content in this directory
เลือก
Permanent (301)
กด
Apply
⚠️ ข้อจำกัดของ HTTP Redirect
แม้วิธีนี้จะใช้งานได้
แต่สำหรับเว็บไซต์ขนาดใหญ่
Microsoft แนะนำให้ใช้ URL Rewrite
เพราะยืดหยุ่นกว่า
🚀 วิธีที่ 2 ใช้ URL Rewrite (แนะนำ)
ขั้นตอนที่ 1 ติดตั้ง URL Rewrite Module
ตรวจสอบว่า IIS มี
URL Rewrite
หรือไม่
หากไม่มีให้ติดตั้งก่อน
ขั้นตอนที่ 2 เปิด URL Rewrite
เลือกเว็บไซต์
ดับเบิลคลิก
URL Rewrite
ขั้นตอนที่ 3 สร้าง Rule ใหม่
คลิก
Add Rules
เลือก
Blank Rule
ตั้งชื่อ Rule
ตัวอย่าง
Force HTTPS
Match URL
Requested URL:
Matches the Pattern
Pattern
(.*)
Conditions
คลิก
Add
Input
{HTTPS}
Pattern
OFF
Action
เลือก
Redirect
Redirect URL
https://{HTTP_HOST}/{R:1}
Redirect Type
Permanent (301)
กด
Apply
🔍 ตัวอย่าง web.config
เมื่อสร้าง Rule แล้ว
IIS จะสร้างข้อมูลใน
web.config
ลักษณะดังนี้
<rewrite>
<rules>
<rule name="Force HTTPS">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="OFF" />
</conditions>
<action type="Redirect"
url="https://{HTTP_HOST}/{R:1}"
redirectType="Permanent" />
</rule>
</rules>
</rewrite>
🔄 รีสตาร์ท IIS
หลังแก้ไข
iisreset
🧪 ทดสอบการทำงาน
เปิด
http://yourdomain.com
หากถูกต้อง
จะเปลี่ยนเป็น
https://yourdomain.com
ทันที
🌐 ตรวจสอบ HTTP Status Code
ใช้ PowerShell
curl http://yourdomain.com
ผลลัพธ์ควรเป็น
301 Moved Permanently
🔒 เปิด HSTS เพิ่มความปลอดภัย
HTTPS อย่างเดียวอาจยังไม่พอ
ควรเปิด HSTS
เพื่อบังคับ Browser ใช้ HTTPS ตลอดเวลา
ตัวอย่าง Header
Strict-Transport-Security:
max-age=31536000
HSTS จะช่วยป้องกัน
✅ SSL Stripping
✅ HTTPS Downgrade Attack
✅ Man-in-the-Middle Attack
⚡ Redirect WWW และ Non-WWW พร้อมกัน
หลายเว็บไซต์มีทั้ง
www.comsiam.com
และ
comsiam.com
ควรกำหนดรูปแบบเดียว
ตัวอย่าง
https://www.comsiam.com
หรือ
https://comsiam.com
เพียงแบบเดียว
❌ ปัญหาที่พบบ่อย
Redirect Loop
เกิดจาก Rule ซ้ำกันหลายตัว
HTTPS ใช้งานไม่ได้
ตรวจสอบ SSL Binding
ที่พอร์ต
443
Browser ยังเข้า HTTP ได้
เคลียร์ Cache
หรือเปิด InPrivate Mode
เว็บบางหน้าไม่ Redirect
ตรวจสอบ URL Rewrite Rule
ว่าครอบคลุมทุก URL หรือไม่
🛡️ Best Practices
① ใช้ 301 Redirect
ไม่ใช้ 302
② เปิด HSTS
③ ใช้ TLS 1.2 หรือ TLS 1.3
④ ตรวจสอบ SSL ทุกเดือน
⑤ ใช้ URL Rewrite แทน HTTP Redirect
⑥ ทดสอบหลังแก้ไขทุกครั้ง
ทีมงาน comsiam มักกำหนด HTTPS Redirect ตั้งแต่วันแรกที่เปิดเว็บไซต์ใหม่ เพราะช่วยลดปัญหา SEO และเพิ่มความปลอดภัยได้ทันทีโดยไม่ต้องลงทุนเพิ่มเติม
🎯 สรุป
การบังคับ HTTPS บน IIS Windows Server 2022 เป็นขั้นตอนสำคัญหลังติดตั้ง SSL Certificate เพราะช่วยให้ผู้ใช้งานทุกคนเข้าถึงเว็บไซต์ผ่านการเชื่อมต่อที่ปลอดภัย ลดความเสี่ยงจากการดักจับข้อมูล และช่วยให้ Google มองเห็นเว็บไซต์ในรูปแบบ URL เดียว
สำหรับการใช้งานจริง ควรใช้ URL Rewrite ร่วมกับ 301 Redirect และเปิด HSTS เพิ่มเติม เพื่อให้เว็บไซต์มีมาตรฐานความปลอดภัยระดับมืออาชีพ รองรับทั้ง SEO และการใช้งานในระยะยาว ซึ่งเป็นแนวทางที่ทีมงาน comsiam ใช้กับ Web Server และระบบ IIS ในงานองค์กรอย่างสม่ำเสมอ