วิธีการตั้งค่า Redirect HTTP to HTTPS บน CloudFlare

สำหรับผู้ที่ใช้งาน CloudFlare และเปิดใช้งาน SSL ด้วย และอยากให้พิมพ์ URL แบบไม่มี SSL และเด้งไปหน้าที่เป็น SSL ทุกครั้ง สามารถสร้าง Page Rules ได้ตามรูปด้านล่างนี้ครับ

1. ล็อคอินที่ CloudFlare เลือกโดเมน และไปที่เมนู “Page Rules” จากนั้นคลิกที่ “Create Page Rule”

cloudflare-ssl-redirect-1

2. ใส่ URL ของโดเมนเรา และตามด้วย /* ด้านหลัง และเลือก Always Use HTTPS จากนั้นคลิกที่ “Save and Deploy”

cloudflare-ssl-redirect-2

3. จากนั้นก็จะได้ตามรูปด้านล่างนี้ เป็นอันเสร็จสิ้น

cloudflare-ssl-redirect-3

 

CloudFlare ตั้งค่า Cache สุดโหด ลดภาระเซิฟเวอร์

เชื่อว่าหลายๆท่านคงจะเคยได้ยิน CloudFlare ในที่นี้ผมจะเรียกสั้นๆว่า CF นะครับ โดยตัวมันเอง สามารถที่จะใช้งานได้ฟรี แถมยังมี SSL ให้ฟรี และปัจจุบันก็รองรับ HTTP 2 โดยที่เราไม่ต้องทำอะไรที่เซิฟเวอร์จริงๆเลย หรือแม้ว่าเซิฟเวอร์จริงๆของเราจะรองรับแค่ HTTP 1.0/1.1 หากเราไปใช้บริการ CF เราก็จะได้ใช้ HTTP 2 กันเลยฟรีๆ

แต่บทความนี้จะเจาะลึกลงไปยังการ Caching ข้อมูลในเว็บของเราระดับโหด ซึ่งหากเราใช้ CF โดยไม่ได้ปรับแต่งอะไรมาก จากที่ตรวจสอบพบว่ายังมี Traffic เข้ามาเรียกข้อมูลในหน้าเว็บไซต์ตลอดเวลา เพื่อให้เกิดความ Real-Time แต่ในบางครั้ง หน้าเว็บไซต์ของเราไม่ได้มีเนื้อหาอัพเดตอยู่อย่างสม่ำเสมอ หรือเนื้อหาอัพเดตตลอดเวลา อาจจะเป็นเว็บไซต์แนวๆอ่านข้อมูลซะมากกว่า เป็นต้น การ Caching ในบทความนี้จึงเหมาะกับเว็บประเภทนี้มากกว่านะครับ สำหรับเว็บบอร์ด หรือเว็บไซต์ที่ต้องอัพเดตเนื้อหาแบบ Real-Time อาจจะไม่เหมาะกับวิธีการที่ผมจะกล่าวต่อไปนี้ครับ

ก่อนอื่นเรามาดูจากกราฟ MRTG ที่ผมได้ทดสอบระหว่าง Caching กับไม่ได้ Caching แต่ยังใช้ CloudFlare (CF) มาดักไว้ข้างหน้าอยู่นะครับ ไม่ได้เข้ามาตรงๆที่เซิฟเวอร์ ผลปรากฏดังกราฟด้านล่างนี้ครับ

MRTG

อธิบายกราฟ MRTG: ช่วงที่กราฟสูงๆ นั่นคือการที่เราไม่ได้ทำ Caching แต่ยังใช้บริการ CloudFlare อยู่ครับ ส่วนช่วงที่กราฟต่ำๆ คือการตั้งค่า Caching ไว้ที่ CloudFlare แล้วครับ

ส่วนด้านล่างนี้จะเป็นกราฟฝั่งของทาง CloudFlare ตอนที่เราทดสอบการแคช และไม่แคช ในเวลาเดียวกันนะครับ

CloudFlare Caching

สำหรับรูปด้านล่าง จะเป็น Bandwidth ที่อยู่กับทาง CloudFlare และไม่ได้หลุดเข้ามาที่เซิฟเวอร์ตรงๆ (ข้อมูลจะเป็น 24 ชั่วโมงล่าสุดนะครับ)

CloudFlare Bandwidth Saved

วิธีการตั้งค่า Caching:

การตั้งค่า Caching นั้น คงต้องอธิบายว่าแต่ละเว็บไซต์คงไม่เหมือนกัน เพราะว่าเราจะต้องมีบางหน้า ที่ต้องการข้อมูลที่ Real-Time เช่น หน้าเข้าสู่ระบบ (Login) ในที่นี้ผมจะยกตัวอย่าง WordPress CMS ที่จะเห็นภาพได้ชัด และเชื่อว่าหลายๆคนก็คงจะเคยใช้กันอยู่แล้วนะครับ ข้อมูลที่ไม่ได้ต้องการ Real-Time ก็คือข้อมูลหน้าเว็บไซต์ พวก Post, Page, Category, Tags และข้อมูลที่ต้องการความ Real-Time ก็คือ /wp-admin หรือระบบหลังบ้านของ WordPress เวลาเรา Login หรือเข้าไป Management ต่างๆ ต้องการข้อมูลที่ Real-Time เสมอ

หากเข้าใจด้านบนนี้แล้ว เราก็จะรู้ว่าเราควรจะตั้งค่าให้ Caching ข้อมูลอย่างไรนะครับ วิธีการตั้งค่า ให้เราเข้าไปยังโดเมนนั้นๆของเราใน CloudFlare และไปที่เมนู “Page Rules” สำหรับ Package Free เราจะสามารถสร้าง Page Rules ได้ทั้งหมด 3 Rules ด้วยกัน ส่วนตัวเสียเงินอันนี้ผมไม่รู้ว่าได้เท่าไรนะครับ (ขอข้ามไป)

การเรียบลำดับ Page Rules คือ “อันบนสุด สำคัญสุด และจะไม่ทำอันต่อไป หากเข้าเงื่อนไขอันใดอันหนึ่ง” การตั้งค่า WordPress จึงตั้งค่าได้ตามนี้ครับ

CF Caching Page Rules

Bypass : ไม่ทำแคช ให้วิ่งเข้าหาเซิฟเวอร์ตรงๆ

Cache Everything : ทำการแคชทุกๆอย่าง

สำหรับบทความนี้ก็คงขอจบเท่านี้นะครับ การนำเอาไปใช้งาน ก็ขึ้นอยู่กับตัวเว็บไซต์ของท่านด้วย ใช้ Script อะไร? และจะนำเอาไปประยุกต์ใช้งานให้เกิดประโยชน์ได้อย่างไรครับ 🙂

HTTPS ทำให้เว็บช้าจริงหรือ?

HTTPS  (Hypertext Transfer Protocol Secure) หรือการเข้าถึงเว็บไซต์ด้วยความปลอดภัยจากการเข้ารหัสในการรับส่งข้อมูล เราจะเห็นเว็บไซต์ใหญ่ๆจะมี URL ขึ้นต้นด้วย https:// ไม่ว่าจะเป็น Facebook, Google, Yahoo, Bing, Microsoft, Amazon, หรือเว็บไซต์ธนาคาร, เว็บไซต์ที่ทำธุรกรรมการเงินต่างๆ ต่างก็ต้องใช้ SSL (Secure Sockets Layer) ในการเข้ารหัสข้อมูลระหว่างการรับส่งด้วยกันทั้งนั้น เพื่อให้ข้อมูลถึงผู้รับและผู้ส่งอย่างปลอดภัย และมั่นใจได้ว่าไม่มีใครสามารถดักอ่านข้อมูลระหว่างทางการรับส่งได้

จากที่กล่าวมานั้น แน่นอนว่ามันต้องมีประโยชน์และมีความสำคัญอย่างมาก แต่ก็มี Webmaster บางกลุ่มที่แสดงความคิดเห็นถึงการใช้งาน HTTPS ว่ามันจะทำให้เว็บโหลดช้า ซึ่งหากเราวิเคราะห์ตามเหตุผล ก็จริงอยู่ที่จะทำให้ช้าขึ้น เพราะว่าต้องมีขึ้นตอนการเข้ารหัสและถอดรหัส (Encode,Decode) แต่หากเราเทียบกับทรัพยากรฮาร์ดแวร์เซิฟเวอร์ในปัจจุบันแล้วนั้น เรียกได้ว่าแทบไม่ส่งผลอะไรกับความช้าของการโหลดหน้าเว็บไซต์เลย ซึ่งต้องขอบอกเลยว่า เอาเวลาไปปรับโครงสร้างส่วนของ Content ให้เร็วแรงจะดีกว่ามากังวลเรื่อง SSL ช้าจะดีกว่ามากๆเลย หากใครมีความคิดเห็นใดๆสามารถแสดงความเห็นกันได้เลยครับ

CentOS 7 คำสั่งตั้งค่า Network แบบ GUI

สำหรับท่านที่ไม่ถนัดใช้งานทางด้าน Command Line ไม่ว่าจะเป็น nano, vi และอื่นๆ สามารถใช้คำสั่ง “nmtui” เพื่อเรียก GUI ขึ้นมาปรับตั้งค่า Network ได้ตามใจชอบเลยครับ หลังจากที่ลองใช้งานแล้วก็สะดวกไปอีกแบบครับ

nmtui1 nmtui2

WordPress แนะนำ Plugin แก้ไข URL ในเว็บให้เป็น HTTPS

สืบเนื่องจากบทความ “.htaccess คำสั่ง Redirect HTTP ไปยัง HTTPS” สำหรับเว็บไซต์ที่ขับเคลื่อนโดย WordPress เราสามารถใช้งาน Plugin ที่มีชื่อว่า “SSL Insecure Content Fixer” สำหรับช่วยแก้ไข URL และ Link ต่างๆภายในเว็บไซต์ของเราให้กลายเป็น https:// ได้ทั้งหมดเลยนะครับ โดยไม่จำเป็นที่จะต้องเข้าไปแก้ไข Database หรือแก้ไขการตั้งค่าใดๆของระบบ WordPress เลย เพียงแค่ติดตั้งตัว Plugin ตัวนี้ และทำการ Active แล้วลองเข้าเว็บไซต์ของเราด้วย https:// แล้วก็ลอง View Source Code ดูก็ได้ครับ

อย่างไรก็ตาม SSL Insecure Content Fixer ไม่ได้ทำการ Auto Redirect จาก HTTP > HTTPS ให้นะครับ เราก็สามารถใช้ .htaccess ช่วยทำการ Redirect ได้นั่นเอง

ssl-insecure-content-fixer

ดาวน์โหลดปลั๊กอิน: https://th.wordpress.org/plugins/ssl-insecure-content-fixer/

.htaccess คำสั่ง Redirect HTTP ไปยัง HTTPS

ตอนนี้กระแสจาก Google Chrome ที่อัพเดตเบราเซอร์รุ่นล่าสุด จะแสดง icon Notification เป็นเครื่องหมายตกใจก่อน URL สำหรับเว็บไซต์ที่ไม่มี SSL หรือ https:// แล้วนะครับ

สำหรับ Webmaster ท่านใดที่ยังไม่มี SSL ใส่เว็บ ก็ควรจะหามาใส่กันได้แล้ว และสามารถใช้คำสั่ง .htaccess ด้านล่างนี้ สำหรับทำการ Redirect การเข้าใช้งานเว็บไซต์แบบ http:// ให้ไปเป็น https:// ใช้ได้กับทุกโดเมน ซับโดเมนนะครับ


# SSL Redirect
<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>
# END SSL Redirect

หมายเหตุ: การใช้งาน .htaccess ใช้ได้กับ Apache Web Server ที่เปิดใช้งาน mod_rewrite เท่านั้นนะครับ

DirectAdmin สร้าง SSL ฟรีด้วย Let’s Encrypt [วิธีเปิดใช้+สร้างSSL]

ตั้งแต่ที่ทาง DirectAdmin นำเอาตัว SSL ฟรีจากค่าย Let’s Encrypt เข้ามาใส่ในระบบสร้าง SSL ของ DirectAdmin เอง ก็พบเจอปัญหาเป็นระยะๆ เนื่องจากเป็นเวอร์ชั่นที่กำลังอยู่ในช่วงของการพัฒนาและปรับปรุงแก้ไขประสิทธิภาพต่างๆให้ดีขึ้น

สำหรับท่านที่มีปัญหา ผมแนะนำให้แก้ไขด้วยวิธีการด้านล่างนี้เป็นอันดับแรก มันคือการอัพเดต Let’s Encrypt ใน DA ให้เป็นรุ่นล่าสุดนั่นเอง


cd /usr/local/directadmin/custombuild
./build update
./build letsencrypt
./build rewrite_confs

หลังจากนั้น ให้ทำการตั้งค่าต่างๆที่จำเป็นในไฟล์ /usr/local/directadmin/conf/directadmin.conf ดังนี้


enable_ssl_sni=1
letsencrypt=1
letsencrypt_renewal_days=85

ให้ทำการ Restart Service ของ DA 1 ครั้ง, หากเคยตั้งค่า letsencrypt=2 ให้ทำการ Rewrite Config ของ Web Server ด้วย


service directadmin restart
/usr/local/directadmin/custombuild/build rewrite_confs

ที่สำคัญเลย คือบางท่านอาจจะลืมเปิด SSL SNI ในระบบ DA ทำให้ไม่สามารถสร้าง SSL ได้ เพราะว่ามันต้องการ Private IP นั่นเอง, การเปิดใช้งาน SSL SNI จะทำให้เราสามารถใช้งาน Shared IP กันได้

หมายเหตุ: Cloud VPS by CloudHost จะตั้งค่าตามด้านบนนี้ไว้ให้พร้อมใช้งานเลย ไม่ต้องไปตั้งค่าเองผ่าน SSH หรือ Command Line.

และหลังจากขั้นตอนการตั้งค่าผ่านทาง Command Line ตรงนี้เสร็จสิ้นแล้ว ในการใช้งานจริงๆ คนทำตามขั้นตอนดังนี้

  1. เข้าไปที่เมนู Domain Setup >> โดเมนนั้นๆ >> ติ๊กถูก Secure SSL >> Save
  2. ติ๊กเลือก Use a symbolic link from private_html to public_html – allows for same data in http and https >> Save
  3. กลับมาหน้าหลัก และไปที่เมนู “SSL Certificates” ในหน้านี้เราจะต้องเห็นคำว่า “SSL is currently enabled for this domain. You can disable it here.” อยู่ด้านบนสุด
  4. เลือก “Free & automatic certificate from Let’s Encrypt” และกรอก Email ของ Administrator สำหรับโชว์ใน SSL >> Save (ส่วนค่าอื่นๆ แนะนำให้เป็นค่า Default ไว้นะครับ)

 

แนะนำโปรแกรม WinSCP โปรแกรม FTP, SCP น่าใช้งาน

ถ้าจะกล่าวถึงโปรแกรมที่คนไทยชอบใช้งาน FTP แล้ว, คงไม่พ้นโปรแกรม Filezilla Client อย่างแน่นอน แต่สำหรับวันนี้ผมจะมาแนะนำตัว WinSCP โปรแกรม FTP ที่น่าใช้งาน และยังสามารถใช้แบบ SCP ได้อีกด้วย นอกจากนั้นยังรองรับการใช้งาน SFTP หรือการเชื่อมต่อกับเซิฟเวอร์เพื่ออัพโหลดและดาวน์โหลดไฟล์ด้วยการเข้ารหัส ไม่สามารถดักจับข้อมูลระหว่างทางได้ ลักษณะการใช้งานจะคล้ายๆกับการเข้าเว็บไซต์ที่มี HTTPS นั่นเอง

สำหรับท่านที่สนใจใช้งานโปรแกรม WinSCP สามารถดาวน์โหลดได้จากเว็บไซต์ผู้พัฒนาโดยตรง หรือลิงก์ https://winscp.net/eng/docs/guide_install#downloading