http to https

โดยปกติแล้วสำหรับผู้ที่เริ่มหัดสร้าง webpage ของตัวเอง มักจะเริ่มจากทำเป็น http ธรรมดาก่อน เพราะเป็นพื้นฐานปกติอยู่แล้ว แต่ปัจจุบันนี้จะเห็นได้ว่า website ใหญ่ๆเกือบทั้งหมดเปลี่ยนตัวเองเป็น https (http+ssl) กันหมดแล้ว ส่วนเหตุผลที่ว่า https ดีกว่าอย่างไร ตามอ่านได้จากบทความเก่านี้ได้ สำหรับตอนนี้เรามาดูวิธีการทำ website จาก http เป็น https กัน

Let’s Encrypt คืออะไร

letsencryptLet’s Encrypt เป็นโครงการที่เกิดขึ้นจาก องค์กร InternetSecurity Research Group (ISRG) ซึ่งไม่ได้หวังผลกำไร มีเป้าหมายเพิ่อต้องการ เข้ารหัสการเชื่อโยงในโลก World Wide Web (www) โดยไม่มีค่าใช้จ่าย ไม่ต้อง configure web server (apache) ให้ยุ่งยาก รวม ไม่ต้องยืนยันตัวตน พูดง่ายๆคือลดความซับซ้อนแบบการทำสมัยก่อน ซึ่งสำหรับ linux  ใช้เพียงแค่ 2 commnad การทำก็เรียบร้อยแล้ว

 

วิธีการทำ http เป็น https ด้วย letsencrypt

ในการเปิดใช้ HTTPS สำหรับ website ของคุณนั้น ก่อนอื่นจำเป็นต้องได้รับ certificate file จากทาง Certificate Authority (CA) ก่อน ซึ่งในกรณีนี้ Let’s Encrypt เองก็เป็น CA อยู่แล้ว เพื่อนที่จะทำ certificate สำหรับ domain คุณต้องแสดงความเป็นเจ้าของ domain นั้น โดยอาศัย ACME protocol ซึ่งปกติจะทำงานบน host

ส่วนวิธีนั้นมีด้วยกัน 2 แบบ คือผ่าน Shell access (SSH) ในกรณีที่คุณเป็นเจ้าของ host  หรือ ไม่ก็ผ่านทาง panel เช่น cPanel, Plesk, or WordPress

วิธี Shell access

เป็นที่นิยมและง่ายที่สุด เพราะ สามารถทำได้แบบ auto และไม่มี downtime เลย

Step 1 — Install the Let’s Encrypt Client

$ sudo apt-get update
$ sudo apt-get install python-letsencrypt-apache

Step 2 — Set Up the SSL Certificate

รัน command ด้านล่างตามด้วยชื่อ domain ของคุณ (ในที่นี้คือ example.com)

$ sudo letsencrypt --apache -d example.com

 

หรือกรณีที่คุณมี subdomain ด้วย สามารถเพิ่มเข้าไปพร้อมกันทีเดียวได้เลย

$ sudo letsencrypt --apache -d example.com -d www.example.com

เรียบร้อยแล้ว คุณสามารถเช็ก file cert ได้ที่ /etc/letsencrypt/live และลองใช้งานโดยการเข้า https://example.com

Step 3 — Set Up Auto Renewal

หลังจากเสร็จแล้ว ต้องแจ้งให้ทราบว่า cert จะมีอายุเพียงแค่ 90วัน และระบบจะอนุญาต ให้ต่ออายุได้เมื่อเหลือน้อยกว่า 30วัน ตาม command นี้

$ sudo letsencrypt renew

 Processing /etc/letsencrypt/renewal/example.com.conf

   The following certs are not due for renewal yet:
     /etc/letsencrypt/live/example.com/fullchain.pem (skipped)
     No renewals were attempted.

วิธีไม่ผ่าน Shell Access

ทางที่่ดีที่สุดสำหรับการทำโดยไม่ได้ ssh access host คือใช้ support จากทาง host ที่เราใช้บริการอยู่ ซึ่งถ้า host ของท่าน support Let’s Encrypt อยู่แล้ว ก็จะสามารถขอได้ฟรี และทาง host เค้าก็จะ install ให้ (เช็กได้จาก https://community.letsencrypt.org/t/web-hosting-who-support-lets-encrypt/6920) แต่สำหรับบางจ้าวอาจจะต้องมีการ configure พิเศษซึ่งต้องสอบถามดูเอง

 

 

 

3 Thoughts to “วิธีเปลี่ยน website จาก http เป็น https อย่างง่าย ไม่เสียเงิน ด้วย letsencrypt”

  1. […] จากข้อมูลที่กล่าวมาจะเห็นว่า HTTPS มีข้อดีมากกว่า เพราะป้องกันการโจรกรรมข้อมูลได้ ผู้ที่ไม่หวังดีจะไม่สามารถถอดรหัสของต้นทางได้ โดยเฉพาะในเรื่องของธุรกิจ จะสามารถสร้างความน่าเชื่อถือของผู้ที่เข้ามารับชม หรือ ติดต่อหา แต่ข้อเสียของ HTTPS ก็มีเช่นกันคือ ถ้าผ่านทาง CA หรือ แบบไม่ต้อง self-sign จะมีค่าใช้จ่ายค่อนข้างสูง แต่เรามีบทความที่สามารถเปลี่ยน HTTP เป็น HTTPS แบบไม่เสียเงิน […]

  2. […] Link: วิธีเปลี่ยน website จาก http เป็น https อย่างง่า… […]

Leave a Reply