การติดตั้ง SSL Certificate อาจดูเหมือนกระบวนการที่ไม่มีที่สิ้นสุด
ตรงที่คุณคิดว่ใกล้ถึงเส้นชัยแล้ว ยังมีระยะทางเหลือต้องไปอีก
คุณติดตั้ง SSL Certificate แล้ว ตอนนี้ถึงเวลาตรวจสอบว่ามันติดตั้งบนทุกหน้าของไซต์จริงๆ
นี่คือที่มาของการบังคับ HTTPS (Force HTTPS)
เว็บไซต์หลายแห่งประสบปัญหาตอนตั้งค่า SSL Certificate ไม่ได้เปิดใช้งานอย่างถูกต้องบนบางหน้า ดังนั้นคุณต้องบังคับ Certificate (หรือ HTTPS) บนหน้าเหล่านั้น
ในบทความนี้ คุณจะได้เรียนรู้วิธีทำอย่างนั้น
การบังคับ HTTPS คล้องทำให้เกิดปัญหา อย่ากังวล เราพร้อมช่วย เราจะแสดงวิธีแก้ไขปัญหาเหล่านั้น ไซต์ทั้งหมดของคุณจะรันบน SSL ได้ในไม่ช้า
TL;DR: วิธีเร็วที่สุดบังคับเว็บไซต์ให้ใช้ HTTPS คือติดตั้งและเปิดใช้งานปลั๊กอิน Really Simple SSL มันทำงานอัตโนมัติ คุณไม่ต้องยกนิ้วมือเลย หากการบังคับ HTTPS นำไปสู่ปัญหา กลับมาอ่านส่วน Troubleshooting ในบทความนี้
คุณติดตั้ง SSL Certificate แล้วหรือยัง?
ก่อนจะดำเนินการบังคับ HTTPS ใน WordPress คุณต้องมี SSL Certificate ติดตั้งแล้ว อย่าติดตั้งปลั๊กอินที่ช่วยบังคับ HTTPS ก่อนติดตั้ง Certificate
เราเคยเจอสถานการณ์ที่เจ้าของไซต์เปิดใช้งาน Really Simple SSL โดยไม่ติดตั้ง SSL Certificate ผลคือ เว็บไซต์พัง และสูญเสียการเข้าถึงแดชบอร์ดแอดมิน
ดังนั้น โปรดแน่ใจว่าคุณมี SSL Certificate ติดตั้งบนไซต์ก่อนไปส่วนต่อไป นี่คือคู่มือช่วยคุณทำได้ – วิธีติดตั้ง SSL Certificate?
วิธีบังคับ HTTPS ใน WordPress?
มี 2 วิธีบังคับ WordPress ให้ใช้ HTTPS:
- บังคับ HTTPS ด้วยปลั๊กอิน (วิธีง่าย)
- บังคับ HTTPS ด้วยตนเอง (วิธียาก)
ลองดูทั้งสองวิธี –
1. บังคับ HTTPS ด้วยปลั๊กอิน (วิธีง่าย)
ขั้นตอน 1: สร้างไซต์ Staging (Staging site) คือโคลนของไซต์จริง บน Staging คุณทดสอบว่าปลั๊กอินบังคับ HTTPS ได้ถูกต้องหรือไม่
ถ้าไม่ได้ ไซต์จริงไม่ได้รับความเสียหาย นอกจากนี้ คุณสามารถแก้ไขปัญหาบน Staging ต่อมา Merge Staging กับไซต์จริงเพื่อนำการเปลี่ยนแปลงไปใช้โดยไม่ต้องทำซ้ำขั้นตอน
→ ติดตั้งและเปิดใช้งาน BlogVault Staging บนเว็บไซต์ WordPress จริงของคุณ
→ จากแดชบอร์ดเว็บไซต์ เลือก BlogVault
→ ต่อมา ใส่อีเมลของคุณ แล้วคลิก Get Started
→ BlogVault จะขอให้สร้างบัญชี ใส่รหัสผ่านอย่างเดียว
→ เพิ่มไซต์ของคุณเข้าแดชบอร์ด BlogVault เพียงคลิก Add
→ ปลั๊กอินจะเริ่มสำรองข้อมูลเว็บไซต์ทั้งหมด เมื่อเสร็จ บนแดชบอร์ด BlogVault คลิก Sites แล้วเลือกเว็บไซต์ของคุณ
→ เลื่อนลงส่วน Staging เลือก Add Staging > Submit BlogVault จะเริ่มสร้างไซต์ Staging ให้คุณ
→ เมื่อไซต์ Staging พร้อม คุณจะได้รับ username และ password จดไว้ คุณจะต้องใช้
→ เปิดไซต์ Staging โดยคลิกปุ่ม Visit Staging Site
→ ไซต์ Staging จะเปิดในแท็บใหม่ และขอให้ใส่ข้อมูลที่จดไว้
→ ตอนนี้คุณเข้าถึงไซต์ Staging ได้ เพียงเพิ่ม /wp-admin/ ท้าย URL เพื่อเปิดหน้าล็อกอิน
→ และล็อกอินด้วยข้อมูลเดียวกับที่ใช้ล็อกอินไซต์จริง
ขั้นตอน 2: ตอนนี้ติดตั้งและเปิดใช้งานปลั๊กอิน Really Simple SSL บนไซต์ Staging
ขั้นตอน 3: หลังเปิดใช้งาน ปลั๊กอินบังคับ HTTPS นี้จะบอกให้สำรองข้อมูล (ซึ่งคุณทำแล้ว) ต่อมา จะขอให้กด "Go ahead, activate SSL" ทำเลย และ HTTPS จะถูกบังคับทั่วไซต์
ขั้นตอน 4: ล้างแคชไซต์และแคชบราวเซอร์ นี่คือคู่มือช่วยคุณ – วิธีล้างแคช WordPress?
ขั้นตอน 5: ตรวจสอบทุกหน้าบนไซต์ Staging หน้าสำคัญรวมถึง หน้าล็อกอินและแอดมิน หน้าติดต่อ หน้าตะกร้าสินค้า หน้าบริการหรือผลิตภัณฑ์ หน้าแอคไชฟ์ หน้าลैंडดิงสำคัญ และโพสต์
ถ้ามีหน้าเยอะเกินตรวจสอบด้วยตนเอง? ใช้เครื่องมือด้านล่างทำอัตโนมัติ ถ้า SSL Certificate ไม่ทำงานบนหน้าไหน จะได้รับการแจ้งเตือน
- https://www.jitbit.com/sslcheck/
- https://www.sslchecker.com/insecuresources
- https://www.ssllabs.com/ssltest
- https://www.whynopadlock.com/
ถ้า Certificate ไม่ได้ถูกบังคับอย่างถูกต้อง คุณจะเจอปัญหา เช่น mixed content, redirection loops, หรือไม่มี HTTPS บนหน้าล็อกอินและแอดมิน
โชคดีที่ไซต์ทดสอบของเราไม่มีปัญหา mixed content
ถ้าคุณพบปัญหา อย่าตกใจ มีวิธีแก้ ไปที่ส่วน Troubleshooting เพื่อแก้ไขเว็บไซต์
หลังจากแก้ไขไซต์แล้ว Merge ไซต์ Staging กับไซต์จริง
ขั้นตอน 6: เปิดแดชบอร์ด BlogVault ไปส่วน Staging คลิก Merge แล้วเลือก Continue กระบวนการ Merge จะเริ่ม (ปฏิบัติตามคู่มือนี้ถ้าต้องการ: Merging Staging Site With Original Site.)
แค่นี้ก็จบครับ SSL Certificate ถูกบังคับบนเว็บไซต์ของคุณแล้ว
2. บังคับ HTTPS ด้วยตนเอง (วิธียาก)
การใช้ปลั๊กอินเป็นวิธีที่แนะนำ เพราะอัตโนมัติ คุณไม่ต้องทำอะไรมากนอกจากเปิดใช้งานปลั๊กอิน
กับวิธีmanual คุณต้องมีประสบการณ์นิดหน่อยและสบายใจกับการจัดการไฟล์ backend ของ WordPress ถ้าคุณไม่เชี่ยวชาญทำงาน backend ของเว็บ คุณอาจทำผิดพลาด
น่าเสียดาย ข้อผิดพลาดเล็กที่สุด นำไปสู่ผลร้ายแรง เช่น เว็บไซต์พัง และคุณสูญเสียการเข้าถึงแดชบอร์ดแอดมิน
ถ้าเราไม่ชัดเจนพอ: วิธี manual ไม่ได้รับแนะนำ แต่ถ้าคุณรู้สึกอยากลอง冒险วันนี้ ไปข้างหน้าและลองวิธี manual
นี่คือ 2 ขั้นตอนที่ต้องทำเพื่อบังคับ WordPress HTTPS โดยไม่ใช้ปลั๊กอิน:
ขั้นตอน 1: สำรองข้อมูลเว็บไซต์ (Backup Your Site)
สำรองข้อมูลเว็บไซต์ครบถ้วนก่อนดำเนินขั้นตอนด้านล่าง ถ้ามีอะไรผิดพลาด คุณสามารถกู้คืนไซต์กลับสู่ปกติได้เร็ว นี่คือข้อป้องกันที่แม้นักพัฒนาประสบการณ์ก็ทำ
ถ้าคุณไม่ได้สมัครบริการสำรองข้อมูล นี่คือบริการสำรองข้อมูลที่ดีที่สุดสำหรับ WordPress
ขั้นตอน 2: เปลี่ยนการตั้งค่า WordPress & Site Addresses
→ ล็อกอินแดชบอร์ด WordPress ไป Settings > General
→ ไปที่ WordPress & Site Addresses
→ เปลี่ยน URL จาก https:// เป็น https://
→ บันทึกและปิดหน้าต่าง
ขั้นตอน 3: แทรกโค้ดสนิปเป็ตเข้าเซิร์ฟเวอร์
มี 2 ประเภทของเซิร์ฟเวอร์ –
- Apache
- Nginx
โค้ดสนิปเป็ตที่ต้องแทรกบนเซิร์ฟเวอร์ Apache ต่างจาก Nginx ดังนั้น คุณต้องทราบก่อนว่าไซต์ของคุณโฮสต์บนเซิร์ฟเวอร์อะไร นี่คือวิธีเช็ค –
> เซิร์ฟเวอร์ของไซต์คุณคืออะไร?
คุณสามารถถามโฮสติ้งได้ แต่มีวิธีเร็วกว่าที่เราจะแสดงด้านล่าง:
→ เปิดเว็บไซต์ของคุณ คลิกขวาที่ไหนก็ได้ในหน้าต่าง เลือก Inspect หน้าต่างเล็กขึ้นมาจากด้านล่าง
→ จากหน้าต่างนั้น เลือก Network แล้ว ชื่อเว็บไซต์ของคุณ แล้วคลิก Header
→ ในส่วน Header เลื่อนลงหา server ของไซต์คุณ
> แทรกโค้ดสนิปเป็ตบนเซิร์ฟเวอร์ Apache
→ ดาวน์โหลดและติดตั้ง Filezilla บนคอมพิวเตอร์
→ เปิดซอฟต์แวร์ ใส่รายละเอียด FTP ที่ด้านบนของหน้าต่าง คุณหา FTP credentials ได้จากคู่มือนี้และวิดีอนี้ หรือถามโฮสติ้งโดยตรง
→ แผง Remote site จะแสดงไฟล์และโฟลเดอร์ของเว็บไซต์ คุณควรเจอโฟลเดอร์ public_html ขยายโฟลเดอร์นั้น
→ ภายในโฟลเดอร์ public_html คุณจะเจอไฟล์ .htaccess คลิกขวาเลือก View/Edit
→ ภายในไฟล์ .htaccess แทรกโค้ดสนิปเป็ตต่อไปนี้:
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
โปรดแน่ใจว่าคุณแทรกระหว่าง "# BEGIN WordPress" และ "# END WordPress"
→ จำได้ไหม ต้องบันทึกไฟล์และออก
แค่นี้ก็จบ จะบังคับ HTTPS บนเว็บไซต์ของคุณ
> แทรกโค้ดสนิปเป็ตบนเซิร์ฟเวอร์ Nginx
→ ดาวน์โหลดและติดตั้ง Filezilla บนคอมพิวเตอร์
→ เปิดมัน ใส่ FTP credentials หาได้จากโฮสติ้ง ถ้าไม่รู้หาได้อย่างไร คู่มือนี้และวิดีโอจะแนะนำทีละขั้นตอน
→ แผง Remote site จะแสดงไฟล์และโฟลเดอร์ WordPress คุณควรเจอโฟลเดอร์ public_html คลิกขยาย
→ ภายในโฟลเดอร์ public_html คุณจะเจอไฟล์ wp-config.php คลิกขวาเลือก View/Edit
→ ภายในโฟลเดอร์ .htaccess แทรกโค้ดสนิปเป็ตต่อไปนี้:
server { listen 80; return 301 https://domain.com$request_uri; }
โปรดจำได้ว่า ต้องแทนที่ domain.com ในสนิปเป็ตด้วย URL เว็บไซต์ของคุณเอง
นอกจากนี้ ต้องแทรกโค้ดเหนือประโยค /* That's all, stop editing! Happy blogging. */
→ จำได้ไหม บันทึกไฟล์และออก
→ ต่อมา ล้างแคชเว็บไซต์ และแคชบราวเซอร์ คู่มือนี้ช่วยคุณ – วิธีล้างแคช WordPress?
→ ตรวจสอบเว็บไซต์อย่างละเอียด หน้าสำคัญรวมถึง หน้าล็อกอินและแอดมิน หน้าติดต่อ หน้าตะกร้า หน้าบริการ/ผลิตภัณฑ์ หน้าแอคไชฟ์ หน้าลैंडดิงสำคัญ และโพสต์
ถ้าเว็บไซต์มีหน้าเยอะเกินตรวจสอบด้วยตนเอง ใช้เครื่องมือตรวจสอบว่า HTTPS ถูกบังคับถูกต้อง
- https://www.jitbit.com/sslcheck/
- https://www.sslchecker.com/insecuresources
- https://www.ssllabs.com/ssltest
- https://www.whynopadlock.com/
เครื่องมือจะแจ้งเตือนถ้า SSL Certificate ไม่ปรากฏบนหน้าไหน
ถ้ามีการแจ้งเตือน อย่าตกใจ มีวิธีแก้ ไปที่ส่วน Troubleshooting แก้ไขไซต์
แต่ถ้าทุกอย่างดี ไปส่วนต่อไป
อัปเดตไซต์ของคุณกับบริการเว็บต่างๆ
ถ้าคุณแบบเรา คุณน่าจะใช้บริการเว็บเยอะ ตัวอย่างบริการทั่วไปคือ X, Y, และ Z การอัปเดต URL บนบัญชีทั้งหมดสำคัญมากเพื่อให้ทำงานต่อได้
→ อัปเดต Sitemap: ควรจะเป็นไปได้โดยอัตโนมัติจากปลั๊กอิน SEO อย่าง Yoast ถ้าไม่ คุณต้อง ล็อกอิน WordPress admin ไปที่ SEO > Features > XML Sitemaps > ปิด sitemap แล้วเปิดใหม่ ทำให้ sitemap ถูกสร้างใหม่ด้วย URL ที่เปลี่ยนแล้ว
→ อัปเดต URL บนบริการ Google: Google Analytics ถือว่า HTTP และ HTTPS เป็นเว็บไซต์ต่างกัน จึงต้องอัปเดตลิงก์เว็บไซต์บน Analytics ล็อกอิน Analytics ไป Admin > Property Settings > Default URL เลือก HTTPS จาก dropdown ก่อน URL ของคุณ
บน Google Search Console ต้องเพิ่มเป็น property ใหม่ แล้วอัปโหลด sitemap ที่อัปเดตแล้วขึ้น Search Console
→ อัปเดต CDN: CDN ส่วนใหญ่มีฟีเจอร์ในตัวให้เปลี่ยน URL ถ้า CDN ของคุณไม่มี ถามฝ่ายสนับสนุนของพวกเขา
→ อัปเดตบัญชีโซเชียลมีเดีย: แนวทางปฏิบัติที่ดีคือเก็บ URL ไซต์ให้ทันสมัยบนโปรไฟล์โซเชียล
Troubleshooting ปัญหาจากการบังคับ HTTPS
ตอนบังคับ HTTPS บนเว็บไซต์ WordPress คุณน่าจะเจอ 1 ใน 3 ปัญหานี้:
- ไม่มี SSL บนหน้าล็อกอิน & แอดมิน
- ล็อกแตก หรือล็อกแสดงเครื่องหมายเตือน (ปัญหา Mixed Content)
- Redirection loops (วนลูปเปลี่ยนทาง)
นี่คือวิธีแก้ –
1. ไม่มี SSL บนหน้าล็อกอิน & แอดมิน
หน้าล็อกอินและพื้นที่แอดมินแสดงคำเตือน "Not Secure"?
เกิดขึ้นเมื่อ SSL Certificate ไม่ได้ตั้งค่าอย่างถูกต้อง
ถ้าคุณล็อกอินต่อโดยไม่มี SSL ข้อมูลล็อกอิน ถ้าถูกแฮกเกอร์ได้ สามารถใช้ประโยชน์ได้ง่าย ก่อนที่ภัยพิบัติจะเกิด คุณต้องบังคับ HTTPS บนหน้าล็อกอินและแอดมิน
บทความนี้ช่วยคุณ – WordPress Login Not Secure
2. ล็อกแตก หรือแสดงเครื่องหมายเตือน (Mixed Content Issue)
SSL Certificate ของคุณแสดงเครื่องหมายเตือน?
เกิดจากปัญหา Mixed Content หมายถึง คุณมีลิงก์ รูปภาพ สคริปต์ และ/หรือ stylesheets จากปลั๊กอินและธีม WordPress ที่ไม่ใช้ HTTPS
เพื่อตรวจสอบว่าไซต์มี mixed content หรือไม่ ทำได้โดยรันไซต์บน SSL checkers อย่าง Whynopadlock & Jitbit หรือตรวจสอบด้วยตนเอง:
1. เปิดเว็บไซต์ คลิกขวาเลือก Inspect
2. หน้าต่างเล็กขึ้นจากด้านล่าง ไปที่ Console จะแสดงคำเตือน mixed content พร้อมรายละเอียดว่ามาจากไหน
เช่น ปัญหาอาจมาจากปลั๊กอินหรือธีม WordPress
อาจมาจากรูปภาพบนไซต์
เพื่อแก้ปัญหานี้ ตามคู่มือ Removing Mixed Content in WordPress
3. Redirection Loops (วนลูปเปลี่ยนทาง)
เว็บไซต์ของคุณถูกเปลี่ยนทางตลอดเวลา?
Redirection loops เกิดจากหลายเหตุผล:
- WordPress & Site Addresses ผิด
- คำสั่งเปลี่ยนทางผิดในไฟล์ .htaccess
- บังคับ HTTPS โดยไม่ติดตั้ง SSL Certificate
- ปัญหาการตั้งค่าปลั๊กอินเปลี่ยนทาง
ถ้าคุณปฏิบัติตามคู่มือของเราอย่างระมัดระวัง 3 ปัญหาแรกไม่น่าจะเป็น แต่เราแนะนำทบทวนขั้นตอนอีกครั้ง เพราะเป็นการเปลี่ยนแปลงสำคัญ ข้อผิดพลาดเล็กอาจนำไปสู่ redirection loop
ทุกอย่างดี? แล้วน่าจะเป็นปลั๊กอินเปลี่ยนทางบนเว็บไซต์ที่เป็นตัวร้ายจริง ลองปิดใช้งานดู
Redirection loop จะป้องกันไม่ให้เข้าถึงแดชบอร์ดแอดมิน ดังนั้นต้องปิดปลั๊กอินผ่าน FTP
→ เปิด Filezilla ไป public_html > wp-content > plugins
→ เลือกปลั๊กอินเปลี่ยนทางที่ติดตั้งบนไซต์ คลิกขวาเลือก Rename ใส่ .deactivate ปลั๊กอินจะถูกปิดใช้งาน
→ ต่อมา ล้างแคช และเช็คว่าไซต์ยัง redirect อยู่ไหม หวังว่าแก้แล้ว ถ้าไม่ พิจารณาโพสต์บนฟอรัมสนับสนุน WordPress และกลุ่ม Facebook เช่น WordPress Experts, WPCrafter, WordPress, WPSecure และอื่นๆ
เมื่อทุกอย่างล้มเหลว คุณสามารถจ้างนักพัฒนาสืบสวนได้ โปรดแน่ใจว่าจ้างจากแหล่งที่เชื่อถือได้ เช่น –
- WordPress Jobs
- Smashing Jobs
- Codeable.io
- WPMU Dev Pros
- StackOverflow Careers
แค่นี้ก็จบครับ นี่คือวิธีบังคับ HTTP เป็น HTTPS ใน WordPress เราหวังว่าคุณพบคู่มือนี้มีค่าและทำตามง่าย
ขั้นตอนต่อไป?
เรามั่นใจว่าถ้าคุณปฏิบัติตามแนวทางของเราอย่างระมัดระวัง คุณสามารถบังคับ HTTPS ทั่วเว็บไซต์ WordPress ได้
แต่วิธีเดียวการย้ายไซต์ไป HTTPS ไม่พอที่จะรักษาความปลอดภัยจากแฮกเกอร์และบอท
คุณต้องดำเนินมาตรการรักษาความปลอดภัยเชิงรุกอื่นๆ
มาตรการความปลอดภัยสำคัญที่สุดสำหรับเว็บไซต์ WordPress คือ ติดตั้งปลั๊กอินรักษาความปลอดภัยที่เชื่อถือได้และน่าเชื่อถือ
ปลั๊กอินรักษาความปลอดภัยที่มีประสิทธิภาพจะปกป้องเว็บไซต์ของคุณโดย:
- บล็อกトラฟฟิกร้ายไม่ให้เข้าถึงไซต์ด้วยไฟร์วอลล์และฟีเจอร์ป้องกันล็อกอิน
- สแกนเว็บไซต์อัตโนมัติทุกวัน
- ทำความสะอาดเว็บไซต์อย่างละเอียดภายในไม่กี่ชั่วโมง
- ช่วยนำมาตรการ Hardening ไปใช้
รักษาความปลอดภัยไซต์ของคุณด้วยบริการความปลอดภัย MalCare