ก่อนอื่นเลย … เคยสงสัยมั้ยครับว่า https หรือ ssl คืออะไร
หลายต่อหลายครั้งที่เราพิมพ์ชื่อเว็บไซต์ลงในช่อง URL แล้ว Enter มันมักจะปรากฏตัวอักษรสั้นๆ https:// นี้ขึ้นมาด้านหน้าเว็บเสมอ เช่น ‘https://www.google.co.th’ หรือ ‘https://www.facebook.com’ แม้ว่าเราจะไม่ได้เป็นฝ่ายพิมพ์เจ้าตัวอักษร https นี้เลยก็ตามที
Hypertext Transfer Protocol Secure หรือ HTTPS คือโปรโตคอลสำหรับเรียกใช้งานเว็บไซต์ ที่จะระบุว่าการส่งผ่านข้อมูลในเว็บไซต์นี้จะถูกเข้ารหัสเพื่อความปลอดภัย มีการตรวจสอบสิทธิ์ และความสมบูรณ์ของข้อมูลระดับหนึ่งแล้วครับ
อ้าว แล้วอะไรเป็นมาตรฐานในเรื่องนี้ล่ะ ว่าเว็บไซต์ไหนเป็นหรือไม่เป็น https
นั่นคือที่มาของหัวเรื่องวันนี้ครับ SSL
ยาวไปอยากเลือกอ่าน
SSL คืออะไร
SSL คือ Secure Socket Layer เป็นเทคโนโลยีการเข้ารหัสข้อมูลเพื่อเพิ่มความปลอดภัยในการส่งข้อมูลบนอินเทอร์เน็ต ทั้งในเว็บไซต์หรือแอปพลิเคชั่นต่างๆ ที่จะทำให้เว็บไซต์ของเราถูกดักจับข้อมูลได้ลำบากขึ้นนั่นเองครับ
เมื่อเราเข้าเว็บไซต์ที่มีการใช้ SSL ทางเว็บไซต์ก็จะส่งกุญแจไขรหัสดอกหนึ่ง (ผมสมมติเป็นกุญแจ A) พร้อมกับใบรับรองดิจิทัลที่เรียกว่า SSL Certificate มาให้เรา ซึ่งใบรับรองดิจิทัลนี้จะถูกรับรองโดยหน่วยงานที่มีความน่าเชื่อถือ (CA) และเว็บเบราเซอร์ของเราก็จะมีข้อมูลของหน่วยงานเหล่านี้อยู่แล้ว และเมื่อยืนยันว่าใบรับรองนี้เป็นของจริง ในส่วนหน้าของเว็บก็จะขึ้นอักษร https มา แสดงให้เห็นว่า นี่คือเว็บที่เข้ามีการเข้ารหัสข้อมูล
แล้วเวลาที่เราส่งข้อมูลอะไรก็ตามที่มีความสำคัญ ตัวเบราเซอร์ของเราก็จะทำการสร้างกุญแจดิจิทัลขึ้นมา 2 ดอกซึ่งเหมือนกันทั้งสองดอก (ผมเรียกเป็นกุญแจ B) แล้วเข้ารหัสกุญแจดอกนี้ด้วย กุญแจ A ที่ได้มาจากเว็บไซต์อีกทีและส่งดอกที่เข้ารหัสแล้วไปยังเซิฟเวอร์ แล้วเมื่อทางฝั่งเซิฟเวอร์ของเว็บได้รับกุญแจที่เราสร้าง เราก็สามารถส่งข้อมูลที่เข้ารหัสจากกุญแจ B ไปมากับเซิฟเวอร์ได้เลย
ซึ่งจากอธิบายมา จริงๆ แล้วทั้งหมดทั้งมวลกินเวลาเพียงแค่ไม่กี่วิเท่านั้นเองครับ
ประเภทของ SSL Certificate
ถ้ามองดูอย่างผิวเผินแล้วเราคงแยกไม่ออกว่า SSL Certificate แต่และประเภทมันต่างกันอย่างไร เพราะสิ่งที่ทุกคนสังเกตในช่อง URL คือ https อย่างเดียว แต่จริงๆ แล้วมันสามารถจำแนกออกได้ 3 แบบหลักๆ คือ
1. Domain Validation SSL Certificate (DV)
นี่คือการออกใบรับรอง SSLที่ง่ายและไวที่สุด โดยฝั่งผู้ให้บริการ SSL จะมีการตรวจสอบเพียงว่าใครเป็นเจ้าของโดเมน (ชื่อเว็บไซต์) นี้เท่านั้น ไม่มีการตรวจสอบเชิงลึกแต่อย่างใด สามารถทำได้ในเวลาไม่กี่นาที หากเป็นเว็บไซต์ที่ใช้ใบรับรอง Domain Validation จะมีเพียงสัญลักษณ์กุญแจสีเขียวและคำว่า Secure เท่านั้น
2. Organization Validation SSL Certificate (OV)
ตามชื่อเลยครับ นี่คือ SSL ในระดับองค์กร โดยจะมีการตรวจสอบในเชิงลึกมากขึ้น ทั้งตัวเจ้าของโดเมน และฝั่งองค์กรว่ามีอยู่จริงหรือไม่ผ่านกรมพัฒนาธุรกิจการค้า และอาจต้องยื่นเอกสารบางประการที่ฝั่งผู้ให้บริการ SSL ขอเพื่อยืนยันตัวตนหรือธุรกิจนั้นๆ โดยจะใช้เวลาตรวจมากกว่า Domain Validation พอสมควร บางครั้งอาจกินเวลาเป็นวันเลยทีเดียว โดยจะมีการระบุองค์กรไว้ในส่วน Organization ของ Certificate ด้วย
3. Extended Validation SSL Certificate (EV)
ตัวสุดท้ายคงเป็นการตรวจสอบที่เข้มงวดที่สุด สำหรับ Extended Validation ซึ่งนอกจากจะถูกตรวจสอบเจ้าของโดเมน ตรวจสอบองค์กรผ่านกรมธุรกิจการค้าแบบเดียวกับ Organization Validation แล้ว ยังมีการตรวจสอบข้อมูลเชิงลึกของบริษัทด้วย เช่น มีการตั้งบริษัทมานานเท่าไหร่ เชื่อถือได้มากแค่ไหน โดยจะกินเวลาตรวจสอบราวๆ หนึ่งถึงสองสัปดาห์
หากได้รับ Extended Validation แล้ว ในช่อง URL จะขึ้นกุญแจสีเขียวพร้อมกับชื่อบริษัทมาให้ เราสามารถพบได้ในเว็บไซต์ของธนาคารหรือองค์กรใหญ่ๆ
ทั้งนี้ทั้งนั้นการตรวจสอบในรูปแบบต่างๆ อาจแตกต่างกันไปได้ตามผู้ให้บริการ SSL
ทำไม SSL ถึงสำคัญ
อย่างที่เราทราบกันดีครับว่ายุคสมัยนี้ข้อมูลเป็นใหญ่ และคงไม่มีใครอยากให้ข้อมูลตัวเองหลุดไปง่ายๆ นัก สำหรับประเด็นนี้ผมขอแยกเป็นสองข้อ
1. ความปลอดภัย
อย่างที่เห็นครับว่า SSL คือการเข้ารหัสก่อนส่งข้อมูล ดังนั้นต่อให้เราโดนดักจับข้อมูลได้ ฝ่ายที่ได้ข้อมูลของเราไปก็ไม่อาจอ่านสิ่งที่เราส่งไปได้หรือทำได้ยากถ้าไม่มีกุญแจการเข้ารหัส เราคงรู้แล้วว่าสำหรับโลกดิจิทัลไม่มีความปลอดภัยอะไร 100% แต่นี่ก็นับเป็นการป้องกันที่มีประโยชน์พอสมควร เพราะหากไม่ใช่ https แล้วมีคนดักข้อมูลเราได้ เขาจะได้ไปทั้ง username password หรือข้อความสำคัญต่างๆ ไปในทันที
2. ความน่าเชื่อถือ
แม้แต่ Google ก็มีการให้คำแนะนำเกี่ยวกับการใช้ https ครับ โดยจะขึ้นเป็นคำแนะนำเกี่ยวกับการ Support ในหัวข้อเว็บไซต์เลย อีกทั้งคุณจะสามารถสังเกตได้เลยว่าเวลาใช้ Chrome เข้าไปในเว็บไซต์ที่ไม่มี https จะมีการขึ้นเตือน Not Secure มาให้เลยดังรูป
โดยทาง Google มีการออกนโยบายด้านนี้จริงจังตั้งแต่ช่วงปี 2014 และประกาศบังคับใช้กับโดเมนฟรีใน blogspot ช่วงปี 2016 ซึ่งในปัจจุบันก็ยังมีการผลักดันอย่างต่อเนื่อง ทั้งการให้ความสำคัญกับเว็บไซต์ที่มี https ก่อนเมื่อทำการค้นหา
และ Ads (Adwords) ของ Google ก็มีการบังคับเว็บไซต์ให้เป็น https ด้วยเช่นกันเมื่อมีการเก็บข้อมูลสำคัญเช่นข้อมูลส่วนบุคคลหรือการเงิน เว็บลักษณะดังกล่าว Google Chrome เริ่มลงโทษด้วยการใส่คำว่า Not Secure ตั้งแต่การอัปเดตเดือนตุลาคม 2017
จากนั้น เดือนกรกฎาคม 2018 Google ได้ออก Chorme เวอร์ชันใหม่ (Chrome 68) ซึ่งจะมีการแสดงผลแบบ ‘ลงโทษ’ คนที่ยังไม่เป็น https ด้วยการปรับน้ำหนักการแสดงผลให้ดูเหมือนเป็นผู้ร้ายมากขึ้น ดังภาพ
และตั้งแต่นั้นมา ไม่ว่าเว็บไซต์คุณจะเป็นเพียงเว็บแสดงข้อมูล ไม่ใช่เว็บที่เกี่ยวข้องกับการรักษาข้อมูลส่วนตัวของผู้ใช้ คุณก็จะได้ชื่อว่า Not secure ด้วยครับ
อัปเดต: ปัจจุบัน ทุกๆ Browser ก็หันมาทำเหมือน Chrome กันแล้ว โดยหากเว็บใดยังคงเป็น http อยู่ จะลงโทษเว็บไซต์นั้นโดยการแจ้งเตือน not secure ด้านหน้า url ทำให้เว็บคุณไม่น่าเชื่อถือ
อยากให้เว็บเป็น https ต้องทำยังไง
1. หาใบรับรอง SSL ให้เว็บไซต์ และทำการติดตั้ง
ซึ่งตรงนี้จะมีทั้งแบบเสียเงินและไม่เสียเงินนะครับ ซึ่งโดยส่วนมากทางโฮสต์ของเว็บไซต์ก็จะมีการให้บริการ SSL อยู่แล้วในรูปแบบของการใช้ใบรับรองร่วมกัน และ ถ้าหากโฮสต์มีให้บริการ เราก็สามารถติ๊กเลือกเพื่อติดตั้งได้เลยใน Direct Admin ได้เลยตามที่เห็นในภาพตัวอย่าง
หรือจะเลือกจดทะเบียน Certificate เองก็ได้ แม้แต่ใช้ของฟรีอย่าง Let’s Encrypt ก็ยังได้ ซึ่งนอกจากใช้ SSL ผ่านผู้ให้บริการเว็บไซต์ตัวเอง คุณยังสามารถใช้บริการจาก Cloudflare.com ซึ่งมีบริการ SSL ฟรีให้อีกด้วย โดยสามารถดูวิธีติดตั้งอย่างละเอียดได้ที่นี่ ครับ
หากเป็นผู้ใช้ WordPress ก็จะมี Plug-in สำหรับ SSL ในชื่อ CloudFlare Flexible SSL อยู่แล้วครับ โดยสามารถเข้าไปดูรายละเอียดและวิธีติดตั้งได้ที่นี่ เลยครับผม
2. แก้ไขลิงก์ไปยังหน้าเว็บไซต์
ด้วยความที่เราแก้ไขเว็บไซต์ให้กลายเป็น https แล้ว จะทำให้ลิงก์ต่างๆ ที่เป็น http ไม่สามารถเข้าได้ รวมถึงบางครั้ง Google เองก็หาไม่เจอ ทำให้ต้องมีการ Redirect เว็บไซต์กันใหม่ ด้วยการเข้าไปแก้โค้ดข้างในเว็บไซต์ และการทำวิธี 301 Redirect ใน Direct Admin
แล้วเจ้า 301 Redirect คืออะไรอีก?
ขออธิบายแบบเข้าใจง่ายๆ สมมติหากบ้านเลขที่ของเราโดนเปลี่ยน บุรุษไปรษณีย์หรือคนส่งของคงปวดหัวกับเลขที่เปลี่ยนไปใช่มั้ยล่ะครับ
301 Redirect ก็เหมือนกับการแปะป้ายเส้นทางบอกว่าจริงๆ แล้ว บ้านเลขที่เท่านี้ๆ ก็คือบ้านหลังเดิมนี่ล่ะ แค่มีการปรับเปลี่ยนเลขที่บ้านเฉยๆ หลังจากนั้นของทุกอย่างก็จะถูกส่งมาที่บ้านดังกล่าวตามเดิม ต่อให้เลขเปลี่ยนไปก็ตาม แค่นั้นเองครับ
โดยเราสามารถทำ 301 Redirect ได้ด้วยการสร้างไฟล์ .htaccess ใน public_html ของ direct admin หลังจากนั้นก็ทำการ Edit ไฟล์แล้วใส่โค้ด
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
เสร็จก็กดบันทึกและทดสอบด้วยการเปิดหน้าเว็บเดิมที่เป็น http เพื่อเช็คว่ามัน Redirect มาจริงหรือไม่ ซึ่งถ้าหากเรามีไฟล์ .htaccess อยู่แล้วก็สามารถเพิ่มโค้ดเข้าไปด้านในได้เลยเช่นกัน
3. ตรวจสอบ และ แก้ไข Mixed Content
Mixed content หรือ เนื้อหาผสม เกิดจากการที่องค์ประกอบบางส่วนของเว็บไซต์ของเรายังถูกโหลดมาจากแหล่งที่มาที่เป็น http อยู่ และจะเปลี่ยนหน้าเว็บบางหน้า หรือทุกหน้าของเราให้ขึ้นว่ามันไม่ปลอดภัยต่อผู้ใช้งาน
แล้วเนื้อหาอะไรบ้างที่มักทำให้เกิด Mixed Content ?
หลักๆ คือสิ่งเหล่านี้ครับ
- รูปภาพ
- CSS
- JavaScript
สิ่งที่เป็นปัญหาเหล่านี้สามารถเช็คได้ผ่านเว็บเบราเซอร์อย่าง Chrome หรือ Firefox เลย โดยการเข้า Inspect Page และเข้า Console เพื่อดูว่าส่วนไหนของหน้าเพจเราที่เป็นสาเหตุ และเข้าไปแก้ไขไฟล์หรือลิงก์ดังกล่าวจนหมดสิ้น
4. ทดสอบหน้าเว็บ
ตามที่พิมพ์เลยครับ เราต้องทำการทดสอบหน้าเว็บทุกหน้าว่าการแก้ไขของเรานั้นสมบูรณ์หรือไม่ อย่างไร เพราะจะมีบางกรณีที่เราหลุดหรือพลาดในบางจุด ที่ทำให้การแสดงผลผิดเพี้ยนไปจากความต้องการ การเช็คให้ถี่ถ้วนจะทำให้ลดความเสี่ยงที่ทำให้เกิดความผิดพลาดให้น้อยลงที่สุด
โดยการทดสอบหน้าเว็บนั้นควรทำการทดสอบด้วยเบราเซอร์อย่างน้อยสองหรือสามตัวที่แตกต่างกันนะครับ รวมถึงเช็คการแสดงผลภายในมือถือด้วย เพื่อความปลอดภัยของเว็บไซต์เราเอง
สรุป
ในยุคปัจจุบันที่ข้อมูลเป็นใหญ่นี้ https เป็นเรื่องที่จำเป็นอย่างยิ่งที่ต้องมีในเว็บไซต์ครับ เพราะนอกจากการเข้ารหัสข้อมูลเพื่อความปลอดภัยแล้ว มันยังช่วยให้ Google หรือ Search Engine อื่นๆ ตีค่าความน่าเชื่อถือของเว็บไซต์เราสูงขึ้นด้วย โดยเฉพาะอย่างยิ่งถ้าคุณกำลังทำ SEO
ตาคุณแล้ว
คงได้เห็นกันแล้วนะครับว่าการมี SSL หรือทำหน้าเว็บให้เป็น https นั้นสำคัญอย่างไร ไม่ว่าคุณจะทำเว็บไซต์รูปแบบไหน ถ้าอยากให้คนเข้ามามีความมั่นใจและเชื่อถือในเว็บไซต์ล่ะก็เรื่องนี้มีผลอยู่มากทีเดียว
ตอนนี้ก็ถึงตาคุณแล้วล่ะครับ ว่าจะเลือกให้เว็บไซต์เป็นรูปแบบเก่าๆ ที่ไม่เข้ารหัสข้อมูล หรือจะเลือกเพิ่มความปลอดภัยให้ตัวเองและผู้ใช้งาน เพื่อความสบายใจของทั้งสองฝ่ายกัน
ทำ ssl ตาม ข้อ 1 หาใบรับรอง SSL ให้เว็บไซต์ และทำการติดตั้ง
ซึ่งตรงนี้จะมีทั้งแบบเสียเงินและไม่เสียเงินนะครับ ซึ่งโดยส่วนมากทางโฮสต์ของเว็บไซต์ก็จะมีการให้บริการ SSL อยู่แล้วในรูปแบบของการใช้ใบรับรองร่วมกัน และ ถ้าหากโฮสต์มีให้บริการ เราก็สามารถติ๊กเลือกเพื่อติดตั้งได้เลยใน Direct Admin
แล้ว เจ๊งครับ ขอความช่วยเหลือ การยกเลิก ssl ในdirect admin ด้วยครับ