ลดความยุ่งยากในการใช้คลาวด์ พูดคุยกับเจ้าหน้าที่

Home บังคับเว็บไซต์ให้ใช้ HTTPS บน Plesk

บังคับเว็บไซต์ให้ใช้ HTTPS บน Plesk

เมื่อติดตั้ง SSL Certificate แล้ว เว็บไซต์ของคุณจะเปิดได้ทั้งแบบ http:// และ https:// ถ้าไม่บังคับ ผู้เข้าชมที่พิมพ์ชื่อโดเมนตรงๆ หรือกดลิงก์เก่าจะยังใช้การเชื่อมต่อที่ไม่เข้ารหัส เบราว์เซอร์จะแสดงคำว่า Not secure และ Google จะเห็นเว็บเดียวกันเป็นสองชุด การตั้ง Redirect แบบ 301 จาก HTTP ไป HTTPS แก้ได้ทั้งสองเรื่อง

Plesk มีตัวเลือกนี้ให้ในตัว ไม่ต้องแก้ไฟล์ .htaccess เอง บทความนี้อ้างอิง Plesk Obsidian ชื่อเมนูอาจต่างกันเล็กน้อยตามเวอร์ชันย่อย

สิ่งที่ต้องเตรียม

  • บัญชีเข้าใช้งาน Plesk ของโดเมน
  • SSL Certificate ที่ใช้งานได้และครอบคลุมทั้ง example.com และ www.example.com ถ้ายังไม่มี ติดตั้ง Let's Encrypt ฟรีได้ตาม วิธีการติดตั้ง SSL by Let's Encrypt บน Plesk
  • ทดสอบก่อนว่าเปิด https://example.com ได้โดยเบราว์เซอร์ไม่เตือน ถ้า HTTPS ยังใช้ไม่ได้แล้วบังคับ Redirect ผู้เข้าชมจะเข้าเว็บไม่ได้เลย

วิธีที่ 1: ใช้ตัวเลือกใน Hosting Settings (แนะนำ)

  1. ล็อกอิน Plesk ไปที่ Websites & Domains แล้วเลือกโดเมน
  2. เปิดแท็บ Hosting & DNS แล้วคลิก Hosting (ในบางเวอร์ชันชื่อ Hosting Settings)
  3. ในส่วน Security ตรวจว่าติ๊ก SSL/TLS support และเลือก Certificate ที่ถูกต้องแล้ว
  4. ติ๊ก Permanent SEO-safe 301 redirect from HTTP to HTTPS
  5. ในส่วน Preferred domain เลือกว่าจะให้เว็บใช้แบบมี www หรือไม่มี www ระบบจะ Redirect อีกแบบมาหาแบบที่เลือกด้วย 301 เช่นกัน ถ้าเว็บเดิมใช้แบบใดมาตลอด ให้เลือกแบบนั้นเพื่อไม่ให้กระทบ SEO
  6. กด Apply หรือ OK

วิธีที่ 2: ใช้สวิตช์ใน SSL It!

ถ้าเซิร์ฟเวอร์ติดตั้งส่วนขยาย SSL It! ไว้ (Plesk รุ่นปัจจุบันมีมาให้โดยทั่วไป) ให้ไปที่ Websites & Domains เลือกโดเมน แล้วคลิก SSL/TLS Certificates จะเห็นสวิตช์ Redirect from http to https เปิดสวิตช์นี้ให้ผลเหมือนวิธีที่ 1 และเป็นค่าเดียวกัน เปิดที่ใดที่หนึ่งก็พอ

ในหน้าเดียวกันยังมีตัวเลือก HSTS ซึ่งสั่งให้เบราว์เซอร์ใช้ HTTPS กับโดเมนนี้เสมอ แม้ผู้ใช้จะพิมพ์ http:// ควรเปิดหลังจากใช้ HTTPS มาสักระยะและแน่ใจว่าทุก Subdomain รองรับ HTTPS แล้ว เพราะเมื่อเบราว์เซอร์จำค่า HSTS ไว้ จะปิดย้อนกลับจากฝั่งเซิร์ฟเวอร์ทันทีไม่ได้จนกว่าค่า max-age จะหมดอายุ

วิธีที่ 3: ใช้ .htaccess (กรณีจำเป็น)

ใช้เฉพาะเมื่อไม่มีสิทธิ์เข้าหน้า Hosting Settings และเว็บทำงานบน Apache (ค่าเริ่มต้นของ Plesk บน Linux) เปิดไฟล์ httpdocs/.htaccess ด้วย File Manager แล้วเพิ่มบรรทัดต่อไปนี้ไว้ด้านบนสุด ก่อนกฎอื่นทั้งหมด

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

อย่าใช้วิธีนี้พร้อมกับวิธีที่ 1 เพราะจะมี Redirect ซ้อนกันโดยไม่จำเป็น วิธีจัดการไฟล์ดูได้ที่ อัปโหลดและจัดการไฟล์เว็บไซต์ด้วย File Manager บน Plesk

ขั้นตอนเพิ่มเติมสำหรับ WordPress

WordPress เก็บ URL ของเว็บไว้ในฐานข้อมูล ถ้ายังเป็น http:// อาจเกิดปัญหา Mixed Content หรือ Redirect วน ให้เข้า Settings > General ในหน้าแอดมินของ WordPress แล้วเปลี่ยน WordPress Address (URL) และ Site Address (URL) เป็น https:// แล้วกด Save Changes ระบบจะให้ล็อกอินใหม่ ซึ่งเป็นเรื่องปกติ

ลิงก์และรูปภาพในเนื้อหาเก่าที่ยังเขียนเป็น http:// ต้องแก้ด้วยเครื่องมือค้นหาและแทนที่ในฐานข้อมูล เช่นใน WP Toolkit ของ Plesk หรือปลั๊กอินที่รองรับข้อมูลแบบ Serialized สำรองฐานข้อมูลก่อนแทนที่ทุกครั้ง

ตรวจสอบผลลัพธ์

  1. จากเครื่องที่มีคำสั่ง curl (มีมาใน macOS, Linux และ Windows 10 ขึ้นไป) ให้รัน
    curl -I http://example.com
    ควรเห็นบรรทัดแรกเป็น HTTP/1.1 301 Moved Permanently และบรรทัด Location: https://example.com/ (หรือแบบมี www ตาม Preferred domain)
  2. ตรวจแบบมี www ด้วย
    curl -I http://www.example.com
    ควรได้ 301 ไปยัง HTTPS เช่นกัน
  3. เปิดเว็บในเบราว์เซอร์ ที่แถบที่อยู่ต้องไม่มีคำเตือน Not secure กด F12 เปิด DevTools ไปที่แท็บ Console ต้องไม่มีข้อความ Mixed Content

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

ERR_TOO_MANY_REDIRECTS (Redirect วน)

สาเหตุที่พบบ่อยที่สุดคือใช้ Cloudflare ที่ตั้ง SSL/TLS mode เป็น Flexible Cloudflare จะเชื่อมต่อมาที่เซิร์ฟเวอร์ด้วย HTTP แล้วเซิร์ฟเวอร์ก็ Redirect กลับไป HTTPS ไม่รู้จบ แก้โดยเปลี่ยนเป็น Full (strict) ใน Cloudflare (ต้องมี Certificate ที่ถูกต้องบนเซิร์ฟเวอร์) อีกสาเหตุคือมีกฎ Redirect ซ้อนกันทั้งใน Plesk, .htaccess และปลั๊กอิน WordPress ให้เหลือไว้ที่เดียว

เว็บเป็น HTTPS แล้วแต่ยังขึ้น Not secure

เป็นปัญหา Mixed Content คือหน้าเว็บยังโหลดรูป สคริปต์ หรือ CSS ผ่าน http:// ดูรายการไฟล์ที่เป็นปัญหาใน Console ของ DevTools แล้วแก้ลิงก์ในธีมหรือเนื้อหาให้เป็น https://

Redirect ไม่ทำงาน

เบราว์เซอร์อาจจำผลเดิมไว้ ให้ทดสอบด้วย curl -I หรือหน้าต่าง Incognito ถ้าใช้ Cloudflare หรือ CDN อื่น ให้ล้าง Cache ของบริการนั้นด้วย

เบราว์เซอร์เตือนว่า Certificate ไม่ตรงกับ www

Certificate ครอบคลุมเฉพาะ example.com ให้ออก Let's Encrypt ใหม่โดยติ๊กรวม www ด้วย แล้วทดสอบอีกครั้ง

หากตั้งค่าแล้วเว็บไซต์เข้าไม่ได้หรือ Redirect วน ติดต่อทีมงาน THAI DATA CLOUD ได้ที่ https://thaidata.cloud/contact/

ผู้ให้บริการคลาวด์ไทย
เพื่อธุรกิจของคนไทย

"มุ่งมั่น" และ "มั่นคง"
พร้อมรับมือทุกการเติบโต
Trust Cloud
คลาว์ที่ปลอดภัย
คือรากฐานที่มั่นคง
cloud security