บังคับเว็บไซต์ให้ใช้ 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 (แนะนำ)
- ล็อกอิน Plesk ไปที่ Websites & Domains แล้วเลือกโดเมน
- เปิดแท็บ Hosting & DNS แล้วคลิก Hosting (ในบางเวอร์ชันชื่อ Hosting Settings)
- ในส่วน Security ตรวจว่าติ๊ก SSL/TLS support และเลือก Certificate ที่ถูกต้องแล้ว
- ติ๊ก Permanent SEO-safe 301 redirect from HTTP to HTTPS
- ในส่วน Preferred domain เลือกว่าจะให้เว็บใช้แบบมี www หรือไม่มี www ระบบจะ Redirect อีกแบบมาหาแบบที่เลือกด้วย 301 เช่นกัน ถ้าเว็บเดิมใช้แบบใดมาตลอด ให้เลือกแบบนั้นเพื่อไม่ให้กระทบ SEO
- กด 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 สำรองฐานข้อมูลก่อนแทนที่ทุกครั้ง
ตรวจสอบผลลัพธ์
- จากเครื่องที่มีคำสั่ง
curl(มีมาใน macOS, Linux และ Windows 10 ขึ้นไป) ให้รัน
ควรเห็นบรรทัดแรกเป็นcurl -I http://example.comHTTP/1.1 301 Moved PermanentlyและบรรทัดLocation: https://example.com/(หรือแบบมี www ตาม Preferred domain) - ตรวจแบบมี www ด้วย
ควรได้ 301 ไปยัง HTTPS เช่นกันcurl -I http://www.example.com - เปิดเว็บในเบราว์เซอร์ ที่แถบที่อยู่ต้องไม่มีคำเตือน 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/
- Categories:
- Cloud
- Tags:
- Cloud
- Cloud Server
Related Posts
หมวดหมู่ที่น่าสนใจ
- Account Settings
- AD Server
- AI
- Alibaba Cloud
- Anti-Spam Gateway
- AWS Amazon Web Services
- Campaign
- CentOS/AlmaLinux
- Cloud
- Cloud Backup
- Cloud Communication
- Cloud Migration
- Cloud Security
- Cloud Server Management
- Cloud Solution
- Cloud Solution for Government
- Cloud Solutions by Industry
- Cloud Storage
- Cloud VPS App Plus +
- Cloud VPS DirectAdmin
- Cloud VPS Plesk
- CSR
- Cyber Security
- Cybersecurity
- Data Sovereignty
- Database Server
- DDoS
- Digital Tranformation
- Digital Transformation
- Direct Mail
- Directadmin
- Domainname
- Ecommerce
- ERP
- Generative AI
- Getting Started
- Google Cloud
- Google G Suite
- Huawei Cloud
- IT News
- Linux Server
- Managed Cloud Services
- Managed Service Provider
- Manual
- Microsoft
- Microsoft 365
- Microsoft Azure
- News
- On-premise
- Private Mail Server
- Promotion
- Recommend Solution (Enterprise)
- Server
- Sovereign Cloud
- THAI DATA CLOUD Platform
- Ubuntu
- Ubuntu
- Uncategorized
- VMware
- VPS Server
- Web Design
- Web Hosting
- Web Hosting (DirectAdmin)
- Web Hosting (Plesk)
- Web Technologies
- Windows Server
- Wordpress
- Zimbra
- เรื่องราวความประทับใจ
- โซลูชันสำหรับธุรกิจการผลิตและยานยนต์
- โซลูชันสำหรับธุรกิจการศึกษา
- โซลูชันสำหรับธุรกิจการเงิน
- โซลูชันสำหรับธุรกิจขนส่งและกระจายสินค้า
- โซลูชันสำหรับธุรกิจค้าปลีก
- โซลูชันสำหรับธุรกิจท่องเที่ยว
- โซลูชันสำหรับธุรกิจบริการสุขภาพและโรงพยาบาล
- โซลูชันสำหรับธุรกิจประกันภัย
- โซลูชันสำหรับธุรกิจพลังงานและสาธารณูปโภค
- โซลูชันสำหรับธุรกิจสื่อสารมวลชนและเอ็นเตอร์เทนเมนท์
- โซลูชันสำหรับธุรกิจอสังหาริมทรัพย์
- โซลูชันสำหรับธุรกิจเทคโนโลยี


