23
Mar

ทำเว็บให้ปลอดภัย ด้วยการใช้ https กับ let’s encrypt

Category: Blog / 165 views

เมื่อไม่นานมานี้ กระแสการเพิ่มความปลอดภัยให้กับเว็บไซต์บูมมากครับ สาเหตุหนึ่งก็มาจากทาง Web Browser ต่างๆ เริ่มมองว่าเว็บไซต์ทุกวันนี้ควรจะมีมาตรการรักษาความปลอดภัยให้มากขึ้น เพื่อป้องกันการสุ่มเสี่ยงจากผู้ไม่ประสงค์ดีบนโลกออนไลน์นั่นเอง

หนึ่งในการเสริมความปลอดภัยของเว็บเราให้มากขึ้นนั่นก็คือการ “เข้ารหัส” เว็บครับ ซึ่งถ้าทุกท่านสังเกต จะเห็นว่าเว็บที่มีการเข้ารหัส จะมี URL ที่ขึ้นต้นด้วย https แทนที่จะเป็นแค่ http ธรรมดา และมันจะเป็นสีเขียวๆด้วยครับ

นอกจากนี้ Google เองก็มองว่าถ้าเว็บใครที่มีการใช้ https เขาจะทำการลดลำดับความสำคัญในหน้าค้นหาออกไป และจะแจ้งเตือนให้ User รู้ด้วยว่า เว็บนี้หนะ มันไม่ปลอดภัยนะ โปรดระวัง

ยิ่งเว็บไหนที่มีการทำธุรกรรมพวกการกรอกรหัสผ่าน การใส่ตัวเลขบัตรเครดิต หรือทำธุรกรรมทางการเงิน ยิ่งจำเป็นมากๆที่เว็บต้องมีการเข้ารหัสครับ

แต่เมื่อก่อนการจะทำให้เว็บเป็นแบบ https นั่นมีค่าใช้จ่ายค่อนข้างสูงมากๆ จึงเป็นเหตุผลที่เว็บทั่วไปๆไม่พากันทำ เพราะจ่ายทีก็เงินมากโขอยู่  แต่เดชะบุญครับ เดี๋ยวนี้มีบริการ https ที่ “ฟรี”! แถมการติดตั้งก็ไม่ยากด้วย ดังนั้นผมก็แนะนำอย่างมากๆ ว่าให้เว็บของเรานั้นเป็น https กันเถอะ

มาดูกันครับว่าทำอย่างไร

ข้อควรทราบ
  • https เป็นการเข้ารหัส “เพิ่ม” ความปลอดภัยมากขึ้น แต่ไม่ได้หมายความว่าเว็บเราจะปลอดภัยจากการถูกโจมตี 100% จำไว้ว่า ไม่มีอะไรปลอดภัย 100% บนโลกออนไลน์
  • ถ้ามีเว็บไซต์อยู่แล้ว ให้ทำการย้ายข้อมูลไปที่โฟลเดอร์  public_private (ใน Server)
  • เมื่อเปลี่ยน http เป็น https พวกค่ากดไลค์ กดแชร์ คอมเมนต์จากเฟสบุคในบทความต่างๆในหน้าเว็บ จะถูก Reset ใหม่ให้เป็น 0 ต้องนับใหม่ โดยส่วนตัวผมคิดว่าไม่ต้องกังวล มองในระยะยาวดีกว่า
วิธีการทำผ่าน Direct Admin

สำหรับวิธีการทำครั้งนี้ผมจะแนะนำวิธีการทำผ่าน Direct Admin นะครับ เนื่องจากว่า Let’s encrypt เนี่ยมันฟรี ผมว่าโฮสต์ควรจะมีบริการนะคับ ถ้าไม่มีเนี่ย ให้เราพิจารณาหาที่ใหม่ได้เลย

เอาละครับ ก็ให้เรา Login เข้า Direct Admin ของเราก่อน แล้วก็คลิกที่ SSL Certificates

จากนั้นให้เลือก Free & Automatic Certificate from Let’s Encrypt ให้เรากรอก Email ของเราไปครับ แล้วเลื่อนลงมาด้านล่าง ให้กด Save

แล้วก็รอมันนิดนึงครับ ถ้าทำถูกต้อง มันก็จะแจ้งเตือนดังภาพครับ Certificate and Key Saved

จากนั้นให้เราไปที่ SSL Certificate อีกครั้ง คลิกตรง Past a pre-generated certificate and key แล้วก็กด Save

ตอนนี้ Let’s encrypt พร้อมใช้งานละครับ

ต่อมามาตั้งค่าโฟลเดอร์ที่เราจะใช้งานเว็บหน่อยคับ ให้ไปที่ Domain Setup

คลิกที่ชื่อ Domain name ของเรา

แล้วก็เลือก Use a directory named private_html ตรงนี้หมายความว่า ต่อไปเมื่อเราทำการอัพเดทอะไรก็แล้วแต่ให้ทำผ่านโฟลเดอร์นี้นะครับ ถ้าเราเลือกอันที่สองที่เป็น a symbolic จริงๆก็ได้ แต่ผมไม่อยากแนะนำ เพราะมันจะมีปัญหาจุกจิกตามมาค่อนข้างเยอะครับ

หลังจากเลือกแล้วก็ Save เพื่อบันทึกการตั้งค่าครับ ตอนนี้เว็บเราก็พร้อมที่จะเป็น https แล้วครับ

สำหรับคนที่ทำเว็บด้วย WordPress นั้น ผมมีวิธีการแนะนำดังนี้ครับ

ให้มองว่า http กับ https คือเว็บคนละตัวกัน ถ้า “เริ่มติดตั้งเว็บใหม่” ก็ให้ไปติดตั้งใน folder private_html ไปเลยครับ  ส่วนใครที่มีเว็บอยู่แล้ว และต้องการทำ https ก็ให้ไปติดตั้ง WordPress ในโฟลเดอร์ private_html เช่นกัน เสร็จแล้วให้ทำการย้ายข้อมูลจากเว็บ http ไปยังเว็บ https ซึ่งก็ทำได้ง่ายมากด้วยปลักอิน wp all in one migration ครับ เมื่อทำเสร็จเรียบร้อยแล้ว ก็ทำการ Redirect ให้คนที่เข้าเว็บแบบ http ทั่วไป ให้มันวิ่งไปยัง https แบบอัตโนมัติครับ ด้วยคำสั่งนี้ โดยให้เราสร้างไฟล์ชื่อว่า .htaccess ครับ


RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

แล้วก็เอาไฟล์นี้ไปไว้ในโฟลเดอร์ public_html ครับ เพียงเท่านี้ก็จะไม่มีปัญหาแล้ว :)

ทีนี้ครับ ถ้าหากว่าเว็บเรามันถูกต้องมันจะขึ้นสีเขียวๆ แบบนี้

ถ้ามันไม่ขึ้น แสดงว่าเว็บของเราอาจจะมีไฟล์ หรือ URL บางอันที่เรียกผ่าน http เฉยๆครับ ส่วนมากก็มักจะเจอกับพวกรูปภาพ อะไรทำนองนี้ เราเรียกว่า Mixed Content คือในหน้าเว็บมีทั้ง http และ https อยู่ด้วยกัน วิธีการแก้ปัญหาก็ให้เรา Rewrite URL ให้การเรียกไฟล์ต่างๆเป็น https ให้หมดครับผม

ยังไงก็ลองไปนำใช้ดูนะครับ ทำก่อนก็ได้เปรียบครับ เพราะถ้ารอให้ Google ลดอันดับลง ก็ไม่น่าจะส่งผลดีในการทำเว็บไซต์สักเท่าไหร่ :)


Phraisohn Siripool is a Graphic Designer and Website Developer. Contact Buksohn for Your Business Endeavours