ฟรี SSL สำหรับเว็บไซต์ WordPress ใด ๆ
เผยแพร่แล้ว: 2022-03-10หากคุณมีเว็บไซต์อีคอมเมิร์ซ SSL เป็นสิ่งจำเป็นสำหรับการประมวลผลบัตรเครดิตอย่างปลอดภัย แต่แม้ว่าคุณจะไม่ได้ดำเนินการชำระเงิน คุณก็ควรพิจารณาใช้ HTTP ที่ปลอดภัย (หรือ HTTPS) อย่างจริงจัง โดยเฉพาะอย่างยิ่งตอนนี้ที่ฉันจะแสดงวิธีตั้งค่าอย่างรวดเร็วฟรี มาเริ่มกันเลย.
SSL คืออะไรและทำไมฉันจึงควรใส่ใจ?
กล่าวโดยย่อ SSL คือ “S” ใน HTTPS มันเพิ่มชั้นของการเข้ารหัสให้กับ HTTP เพื่อให้แน่ใจว่าผู้รับเป็นคนที่พวกเขาอ้างว่าเป็นจริง ๆ และมีเพียงผู้รับที่ได้รับอนุญาตเท่านั้นที่สามารถถอดรหัสข้อความเพื่อดูเนื้อหาได้
อ่านเพิ่มเติม เกี่ยวกับ SmashingMag:
- HTTPS ทุกที่ด้วย Nginx, Varnish และ Apache
- วิธีการออกใบรับรอง SSL ใหม่ด้วยรหัส SSL เก่า
- เตรียมพร้อมสำหรับ HTTP/2: คู่มือสำหรับนักออกแบบเว็บไซต์
ข้อมูลที่ละเอียดอ่อน เช่น หมายเลขบัตรเครดิต — โดยพื้นฐานแล้ว อะไรก็ตามที่เป็นส่วนตัว — ควรให้บริการผ่าน HTTPS เสมอ อย่างไรก็ตาม มีแนวโน้มเพิ่มขึ้นในการให้บริการเนื้อหาทั้งหมดผ่าน HTTPS ตามที่เราเห็นในเว็บไซต์ข่าว บล็อก เสิร์ชเอ็นจิ้น และเว็บไซต์ของแบรนด์กระแสหลักส่วนใหญ่ ดังนั้น แม้ว่าเว็บไซต์ของคุณจะไม่ได้ประมวลผลการชำระเงิน แต่ก็มีเหตุผลที่ดีที่ควรพิจารณา HTTPS ซึ่งบางส่วนมีดังต่อไปนี้:
- ความน่าเชื่อถือ แม้แต่ผู้ฟังที่ไม่ใช่ด้านเทคนิคก็เชื่อมโยงแม่กุญแจสีเขียวตัวเล็ก ๆ ในแถบที่อยู่ของเบราว์เซอร์ด้วยความไว้วางใจและความน่าเชื่อถือ
- การป้องกันรหัสผ่าน บางทีเว็บไซต์ของคุณอาจโฮสต์เฉพาะวิดีโอลูกแมวเท่านั้น แต่ถ้าผู้ใช้ลงชื่อเข้าใช้เว็บไซต์ของคุณผ่าน Wi-Fi ด้วยรหัสผ่านที่พวกเขาใช้สำหรับธนาคารออนไลน์ด้วย แสดงว่าคุณกำลังอำนวยความสะดวกในการละเมิดความปลอดภัยที่ร้ายแรงด้วยการเผยแพร่ข้อมูลประจำตัวเหล่านั้นต่อสาธารณะ
- พิสูจน์อนาคต เว็บไซต์หลายแห่งยังคงให้บริการผ่าน HTTP แต่มีแนวโน้มที่ปฏิเสธไม่ได้ต่อ HTTPS และสิ่งนี้จะเพิ่มขึ้นเมื่อผู้ใช้ได้รับการศึกษาเกี่ยวกับความปลอดภัยของเว็บมากขึ้นเท่านั้น อยู่ทางด้านขวาของประวัติศาสตร์
- ซอ . Google ประกาศอย่างเป็นทางการว่า HTTPS ถูกใช้เป็นสัญญาณการจัดอันดับ กล่าวอีกนัยหนึ่ง Google ให้รางวัลแก่เว็บไซต์ HTTPS โดยเพิ่มอันดับในผลการค้นหา
อาร์กิวเมนต์ทั่วไปเกี่ยวกับ HTTPS คือการลดประสิทธิภาพ จริงอยู่ กระบวนการเข้ารหัสและถอดรหัสนั้นมีค่าใช้จ่ายเพิ่มเติมในหน่วยมิลลิวินาที แต่ในสถานการณ์ส่วนใหญ่นั้นแทบไม่มีความสำคัญ เนื่องจากเห็นได้จากข้อเท็จจริงที่ว่าบริษัทที่คำนึงถึงประสิทธิภาพ เช่น Google และ Facebook ให้บริการเนื้อหาทั้งหมดผ่าน HTTPS และแท้จริงแล้ว HTTPS อาจทำให้ปัญหาด้านประสิทธิภาพที่มีอยู่แย่ลงได้ เช่นเดียวกับไฟล์ CSS จำนวนมากที่ส่งเป็นไฟล์เดี่ยว แต่สิ่งนี้สามารถบรรเทาได้โดยการปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดขั้นพื้นฐานสำหรับประสิทธิภาพ และด้วยการนำ HTTP/2 มาใช้ ทำให้ต้นทุนประสิทธิภาพของ HTTPS ต่ำลงอีก สิ่งสำคัญที่สุดคือประสิทธิภาพที่ลดลงจะเป็นตัวยับยั้งที่มีความหมายก็ต่อเมื่อเว็บไซต์ของคุณได้รับการปรับให้เหมาะสมที่สุดหรือมีประสิทธิภาพต่ำกว่าที่ทุก ๆ มิลลิวินาทีมีความสำคัญ
วิธีตั้งค่า HTTPS ฟรี
ขั้นตอนแรกในการตั้งค่า HTTPS ฟรีคือการสมัครใช้บริการ DNS บนคลาวด์ หากคุณไม่รู้ว่า DNS คืออะไร เราขอแนะนำให้คุณใช้เวลาสักครู่เพื่อเรียนรู้ก่อนดำเนินการต่อ วิธีการทำงานของ DNS ที่น่ายินดีนั้นสามารถแบ่งย่อยออกเป็นการ์ตูนตลกๆ ได้อย่างยอดเยี่ยม มิฉะนั้น ให้รู้ว่า DNS เป็นระบบที่ชื่อโดเมนเช่น example.com
(ซึ่งมนุษย์เข้าใจ) เชื่อมโยงกับที่อยู่ IP เช่น 104.28.2.167
(ซึ่งคอมพิวเตอร์เข้าใจ) คุณมีตัวเลือกมากมาย แต่ฉันเป็นแฟนตัวยงของ CloudFlare เพราะตั้งค่าได้รวดเร็วมาก แดชบอร์ดใช้งานง่าย และมีแผนบริการฟรีพร้อมคุณสมบัติอันทรงพลังมากมาย
การตั้งค่า CloudFlare
หลังจากลงทะเบียนบัญชี CloudFlare คุณจะได้รับคำแนะนำเกี่ยวกับวิซาร์ดง่ายๆ ในการกำหนดค่าเว็บไซต์แรกของคุณ ซึ่งจะสรุปด้วยคำแนะนำเกี่ยวกับวิธีการลงชื่อเข้าใช้บริษัทจดทะเบียนโดเมนของคุณและชี้เนมเซิร์ฟเวอร์ไปที่ CloudFlare การเปลี่ยนแปลงจะใช้เวลาสักครู่ในการเผยแพร่ แต่เมื่อเสร็จสิ้น CloudFlare จะโฮสต์ระเบียน DNS ของเว็บไซต์ของคุณ ถัดไป เปิดฟีเจอร์ “SSL ที่ยืดหยุ่น” ของ CloudFlare

การเลือกการตั้งค่า “SSL แบบยืดหยุ่น” มีความสำคัญ เนื่องจากคุณไม่จำเป็นต้องซื้อและติดตั้งใบรับรอง SSL ของคุณเองบนเซิร์ฟเวอร์ของเว็บไซต์ของคุณ นี่คือไดอะแกรมของสิ่งที่เกิดขึ้น

อย่างที่คุณเห็น CloudFlare ทำหน้าที่เป็นคนกลางในการรักษาความปลอดภัยการรับส่งข้อมูลระหว่างเว็บไซต์ของคุณและลูกค้า หากนี่เป็นเว็บไซต์ HTML แบบคงที่ คุณจะสามารถเชื่อมต่อผ่าน HTTPS ( https://yourdomain.com
) ได้แล้ว อย่างไรก็ตาม WordPress ต้องการการกำหนดค่าเพิ่มเติมเพื่อทำงานกับโปรโตคอลที่แก้ไข
กำหนดค่า WordPress ใหม่จาก HTTP เป็น HTTPS
ก่อนอื่นคุณต้องอัปเดตการตั้งค่า "WordPress Address" และ "Site Address" ในแดชบอร์ด ภายใต้ "การตั้งค่า" → "ทั่วไป" เมื่อคุณทำเช่นนี้ คุณจะต้องลงชื่อเข้าใช้แดชบอร์ดอีกครั้ง


ดำเนินการอย่างระมัดระวัง หากคุณอัปเดตการตั้งค่าเหล่านี้ก่อนกำหนด คุณอาจเสี่ยงที่จะล็อกตัวเองออก ตัวอย่างเช่น หากเว็บไซต์ยังไม่ได้รับการกำหนดค่าอย่างเหมาะสมสำหรับ HTTPS และการตั้งค่าได้รับการอัปเดต คุณอาจทำให้เกิดการวนรอบการเปลี่ยนเส้นทางที่ทำลายเว็บไซต์และป้องกันไม่ให้คุณเข้าถึงแดชบอร์ด
ณ จุดนี้ คุณควรจะสามารถเยี่ยมชมหน้าแรกของเว็บไซต์ผ่าน HTTPS ได้ อย่างไรก็ตาม ลิงก์ของเพจจะยังคงชี้ไปที่ HTTP URL WordPress จัดเก็บลิงก์ไปยังหน้าและรูปภาพเป็น URL ที่แอบอ้าง ซึ่งหมายความว่า URL แบบเต็ม รวมถึงโปรโตคอล จะถูกบันทึกไว้ในฐานข้อมูล เพื่อให้แน่ใจว่าเว็บไซต์ทั้งหมดให้บริการผ่าน HTTPS อย่างสม่ำเสมอ (โดยไม่แสดงคำเตือนเกี่ยวกับเนื้อหาแบบผสม) คุณจะต้องอัปเดตเนื้อหาเดิมของคุณ
กำลังอัปเดตเนื้อหาดั้งเดิม
ในเว็บไซต์ขนาดเล็กที่มีเพียงไม่กี่หน้า ตัวเลือกที่รวดเร็วที่สุดอาจเป็นเพียงการอัปเดต URL ด้วยตนเองโดยแก้ไขหน้าที่มีอยู่ในอินเทอร์เฟซผู้ดูแลระบบ หากเว็บไซต์มีขนาดใหญ่หรือมีบล็อกที่มีความเคลื่อนไหวสูง การแก้ไขด้วยตนเองอาจไม่เป็นประโยชน์ หากโฮสต์ของคุณมี phpMyAdmin หรืออินเทอร์เฟซอื่นๆ เพื่อเรียกใช้การสืบค้น MySQL คุณสามารถทำได้ง่ายๆ ด้วยการสืบค้น MySQL สองสามรายการในแท็บ SQL หรือคุณสามารถทำตามคำแนะนำของ The Customize Windows ได้จากบรรทัดคำสั่ง
มีความเสี่ยงที่จะระบุอย่างชัดเจน ให้ แทนที่ yourdomain.com
ในการสืบค้นต่อไปนี้ด้วยโดเมนจริงของคุณ นอกจากนี้ หากคุณได้ปรับแต่งคำนำหน้าตารางของ WordPress ให้แทนที่ wp_
ด้วยคำนำหน้าที่เกี่ยวข้อง
ขั้นแรก อัปเดต URL ของโพสต์และเพจ
UPDATE wp_posts SET guid = replace(guid, 'https://yourdomain.com','https://yourdomain.com');
[UPDATE: ตามที่กล่าวไว้ในความคิดเห็น ฟิลด์ guid ไม่ควรถูกแก้ไข]
อัปเดตตาราง wp_postmeta
ด้วย
UPDATE wp_postmeta SET meta_value = replace(meta_value,'https://yourdomain.com','https://yourdomain.com');
สุดท้าย อัปเดตเนื้อหาจริงของโพสต์หรือหน้า การดำเนินการนี้จะอัปเดตลิงก์ย้อนกลับเป็น HTTPS
UPDATE wp_posts SET post_content = REPLACE(post_content, 'https://yourdomain.com', 'https://yourdomain.com');
หลังจากเรียกใช้แบบสอบถามเหล่านี้ คุณจะต้องรีเฟรชลิงก์ถาวรโดยไปที่ "การตั้งค่า" → "ลิงก์ถาวร" เพียงเปลี่ยนการตั้งค่ากลับเป็นค่าเริ่มต้น จากนั้นตั้งค่ากลับเป็นการตั้งค่าใดก็ตามที่คุณใช้ในตอนแรก
ตอนนี้ คุณควรจะสามารถคลิกเมนูและลิงก์ต่างๆ ทั่วทั้งเว็บไซต์ได้ และโปรโตคอลควรยังคงเป็น HTTPS
การแก้ไขปัญหาคำเตือนเนื้อหาผสม
ขึ้นอยู่กับธีมและปลั๊กอินที่ใช้ คุณอาจได้รับคำเตือนในแถบที่อยู่ที่ระบุว่าทรัพยากรบางอย่างไม่ได้รับบริการอย่างปลอดภัย หากข้อผิดพลาดเกี่ยวข้องกับเนื้อหาที่เพิ่มโดยธีมหรือปลั๊กอินที่คุณกำหนดเอง ตรวจสอบให้แน่ใจว่าได้จัดคิวไฟล์ JavaScript และ CSS อย่างเหมาะสม ไม่ใช่ฮาร์ดโค้ด URL ที่ขึ้นต้นด้วย HTTP
เบราว์เซอร์ส่วนใหญ่จะให้คุณขยายคำเตือนเพื่อแสดงคำขอเฉพาะที่ทำให้เกิดข้อผิดพลาด คุณยังสามารถลองใช้ปลั๊กอินฟรี เช่น SSL Insecure Content Fixer ซึ่งจะพยายามแก้ไขปลั๊กอินของบุคคลที่สามที่ไม่สามารถทำได้
เมื่อมาถึงจุดนี้ คุณควรเห็นแม่กุญแจสีเขียวในแถบ URL เมื่อเข้าสู่เว็บไซต์ของคุณ หากคุณไม่ได้ใช้ปลั๊กอินอีคอมเมิร์ซ เช่น WooCommerce หรือ WP eCommerce แสดงว่าคุณทำเสร็จแล้ว! หากคุณเป็นเช่นนั้น มีขั้นตอนสุดท้ายที่สำคัญ
รับ SSL ที่ยืดหยุ่นเพื่อทำงานกับปลั๊กอินอีคอมเมิร์ซ
WordPress มีฟังก์ชันหลักที่ชื่อว่า is_SSL()
ซึ่งปลั๊กอินใช้กำหนดว่าทราฟฟิกถูกเข้ารหัสด้วย SSL หรือไม่ ด้วยวิธีการข้างต้นเพียงอย่างเดียว ฟังก์ชันนี้จะคืนค่า false
เนื่องจากการเข้ารหัสอยู่ระหว่าง CloudFlare และไคลเอ็นต์เท่านั้น การรับส่งข้อมูลที่ PHP โต้ตอบด้วยนั้นไม่มีการเข้ารหัส ดังนั้น super global ที่ฟังก์ชันนั้นตรวจสอบ (เช่น $_SERVER['HTTPS']
) จะไม่มีประโยชน์ เพื่อจุดประสงค์ของเรา ตัวแปรที่เกี่ยวข้องคือ $_SERVER['HTTP_X_FORWARDED_PROTO']
ซึ่ง WordPress ไม่รู้จักในขณะที่เขียน คำขอเปลี่ยนแปลงนี้มีมาช้านานแล้ว แต่ยังไม่ได้รับการแก้ไข
โชคดี ที่ปลั๊กอินฟรีจะแก้ไขปัญหานี้ให้คุณทันที CloudFlare Flexible SSL เพียงติดตั้งปลั๊กอินและเปิดใช้งาน จำไว้ว่าเทคนิคนี้ ไม่ได้เพิ่มความปลอดภัยอีก ต่อไป การรับส่งข้อมูลระหว่าง CloudFlare และเซิร์ฟเวอร์ของเว็บไซต์ของคุณยังไม่ได้รับการเข้ารหัส ดังนั้นจึงยังเสี่ยงต่อการดมกลิ่น
SSL ที่ยืดหยุ่นไม่เต็ม SSL
ความคิดริเริ่ม “Universal SSL” ของ CloudFlare เป็นความพยายามที่น่าสนใจในการทำให้อินเทอร์เน็ตปลอดภัยยิ่งขึ้น แต่ก็ไม่ได้ไร้ข้อโต้แย้ง ข้อกังวลหลักคือ SSL แบบยืดหยุ่นไม่ได้เข้ารหัสในช่วงครึ่งหลังของการเดินทางของการรับส่งข้อมูล (ไปยังเซิร์ฟเวอร์ของคุณ) แต่เบราว์เซอร์ในปัจจุบันยังคงแสดงแม่กุญแจสีเขียวแบบเดียวกับที่เราได้มาเชื่อมโยงกับ SSL แบบสมบูรณ์ CloudFlare เสนอเหตุผลต่อไปนี้ในบล็อก:
การมีการเข้ารหัสที่ทันสมัยอาจดูไม่สำคัญสำหรับบล็อกขนาดเล็ก แต่สิ่งสำคัญคือต้องพัฒนาอนาคตของอินเทอร์เน็ตที่เข้ารหัสโดยค่าเริ่มต้น ทุกๆ ไบต์แม้จะดูธรรมดา แต่โฟลว์ที่เข้ารหัสผ่านอินเทอร์เน็ตทำให้ยากขึ้นสำหรับผู้ที่ต้องการสกัดกั้น เค้น หรือเซ็นเซอร์เว็บ กล่าวอีกนัยหนึ่ง การตรวจสอบให้แน่ใจว่าบล็อกส่วนตัวของคุณพร้อมใช้งานบน HTTPS ทำให้มีโอกาสมากขึ้นที่องค์กรสิทธิมนุษยชนหรือบริการโซเชียลมีเดีย หรือนักข่าวอิสระจะสามารถเข้าถึงได้ทั่วโลก ร่วมกันเราสามารถทำสิ่งที่ยิ่งใหญ่ได้
จะดีหรือแย่กว่านั้น SSL ที่ยืดหยุ่นก็มาถึงแล้ว และอินเทอร์เน็ตจะต้องปรับตัว ในระหว่างนี้ ภาระของเจ้าของเว็บไซต์คือต้องได้รับการศึกษาและตัดสินใจอย่างรับผิดชอบ
การเปลี่ยนเส้นทางคำขอ HTTP ไปยัง HTTPS
การเปิดใช้งานเว็บไซต์ให้ทำงานบน HTTPS ไม่ได้รับประกันว่าคำขอจะใช้โปรโตคอลจริง หากเว็บไซต์ของคุณมีมาระยะหนึ่งแล้ว ผู้ใช้อาจบุ๊กมาร์กไว้ด้วย HTTP แล้ว คุณสามารถเปลี่ยนเส้นทางคำขอ HTTP ทั้งหมดไปยังโปรโตคอลใหม่ได้โดยเพิ่มข้อมูลโค้ดต่อไปนี้ที่ด้านบนสุดของไฟล์ . .htaccess
ในรูทของเว็บไซต์ของคุณ หากไม่มีไฟล์ คุณสามารถเพิ่มได้อย่างปลอดภัย
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule (.*) https://yourdomain.com/$1 [R=301,L] </IfModule>
หากมีไฟล์ . .htaccess
อยู่แล้ว ระวังอย่าเปลี่ยนแปลงอะไรระหว่างบรรทัด # BEGIN WordPress
และ # END WordPress
ในไฟล์นั้น บรรทัดเหล่านี้ได้รับการจัดการโดย WordPress และเมื่อใดก็ตามที่ลิงก์ถาวรได้รับการรีเฟรช เนื้อหาในส่วนนั้นจะถูกเขียนทับ
ยินดีด้วย
การอัปเกรดเว็บไซต์ของคุณเป็น HTTPS แสดงว่าคุณได้ปรับปรุงเว็บไซต์ของคุณ ปกป้องผู้ใช้ และมีส่วนร่วมในการพัฒนาอินเทอร์เน็ต และไม่เสียค่าใช้จ่ายอะไรเลย!