SSL (Secure Sockets Layer) เป็นเครื่องหมายรับรองความปลอดภัยทางอิเล็กทรอนิกส์ ที่จะบอกว่าเว็บนั้นมีความปลอดภัยและน่าเชื่อถือ จะเห็นได้ว่าทุกวันนี้ หลายๆ เว็บไชต์ใหญ่ๆ ต่างก็ใช้ SSL กันทั้งนั้น ไม่ว่าจะเป็น Google, Microsoft, Facebook, Twitter รวมถึงเว็บไชต์ที่ต้องการความน่าเชื่อถืออย่างพวกกลุ่มธนาคารทั้งหลายต่างก็ใช้ SSL เพื่อให้เกิดความปลอดภัยน่าเชื่อถือ   โดยการรับรอง Certificate นั้นจะมีหน่วยงานที่รับผิดชอบด้านนี้เป็นผู้อนุมัติหรือเรียกว่า CA (Certificate Authority)  ตอนนี้เห็นมีหลายเจ้าเหมือนกัน.

เจ้า SSL นั้น มันจะทำงานอยู่บน Protocol : HTTPS (Hypertext Transfer Protocol Secure) ทำให้การ รับ-ส่ง ข้อมูลระหว่าง Client – Server  จะมีการเข้ารหัสข้อมูล (encryption) ซึ่งยากต่อการถอดระหัสและเข้าถึงเพื่อเปิดเผยข้อมูล ทำให้มีความปลอดภัยและเพิ่มความมั่นใจให้กับผู้ใช้มากยิ่งขึ้น และในปัจจุบันหลายๆ เว็บไซต์ทีรับรอง SSL/HTTPS นั้น จะต้องเสียค่าบริการหน่วยงานที่รับรอง CA ดังกล่าวด้วย   จะว่าไปแล้วก็หลายตังค์เหมือนกันนะครับ  ^ ^”

แต่ในบทความนี้ผมจะมาแนะนำ Let’s encrypt SSL  ซึ่งเป็นฟรี Automate พัฒนาโดย Internet Security Research Group (ISRG).  และขั้นตอนติดตั้งเพื่อใช้งานร่วมกับ Apache บน CentOS 7  กัน เพื่อให้เว็บไซต์ของเรามีความปลอดภัยและน่าเชื่อมากถือยิ่งขึ้น


มาเริ่มกันเลยยย !
ก่อนอื่นเลยให้ทำการติดตั้ง package/software เหล่านี้เข้าไปก่อนนะครับ  (ในที่นี้เครืองผมมี Apache web server  ติดตั้งไว้อยู่แล้ว) และเนืองจาก letsencrypt เขียนด้วย python ดังนั้น ต้องให้แน่ใจว่าเราได้มีการติดตั้งไว้ก่อนหน้านี้แล้ว


ทำการ Download source code จาก GitHub

หลังจากที่เราได้ clone source code จาก Github ลงมาล่ะ ต่อมาให้เข้าไป directory ของ letsancrypt

จากนั้นรันคำสั่ง ./letsencrypt-auto เพื่อติดตั้ง software/package แบบ auto

ซึ่งมันจะทำการ install software ที่เกี่ยวข้องเข้าไปด้วย ซึ่งอาจจะใช้เวลา 2-5 นาที

หลังจากที่ install เสร็จแล้ว จากนั้นเราจะต้องทำการ Generate cert และ key เพื่อใช้ในการ config กับ Apache ในขึ้นตอนหลังจากนี้ โดยสามารถใช้คำสั่งด้านล่าง


–email : ให้ใส่ email ที่จะใช้ในการ register
-d : ใส่ชื่อ domain

ผลที่ได้จาก command line ในการ generate certificate ด้านบนเราจะได้ cert file และ key  ซึ่งจะเก็บอยู่ที่ /etc/letsencrypt/live/yourdomain.com จะมีทั้งหมด 4 ไฟล์

ตอนนี้ Apache มันยังไม่รู้จัก cert key ดังนั้นเราจะต้องทำการแก้ไขไฟล์  /etc/httpd/conf.d/ssl.conf โดยทำการเปลี่ยน path ที่อยู่ของ Cert & Key ทั้ง 3 อันให้ถูกต้อง

หลักจาก saved ssl.conf เสร็จแล้ว เพื่อให้ชัวส์ แนะนำว่าเราจะต้องทำการ restart apache ด้วย
โดยใช้คำสั่ง


ถ้าอยากให้เวลาเปิดหน้าเว็บขึ้นมา แล้วบังคับให้มันทำการ Redirect ไปเป็น HTTPS/SSL โดยอัตโนมัติเลย ก็สามารถทำได้เช่นกัน โดยการแก้ไขไฟล์ .htacess

จากนั้นลองเข้าเว็บอีกรอบ แบบ http ธรรมดา จะเห็นว่าผลที่ได้มันจะ redirect เข้า https อัตโนมัติ  https://www.rockdevper.com (SSL/HTTPS) ก็เป็นอันว่าเสร็จสมบูรณ์

ลองเข้าผ่าน มือถือ

เนื่องจาก Let’s encrypt SSL จะมีอายุให้เราใช้ฟรีแค่  3 เดือน ถ้ามัน Expired หรือหมดอายุ ก็อาจจะต้องทำการ gen ใหม่  หรือ re-new อีกรอบ ดังนั้นเพือกันเหนียวเดียวลืม หรือไม่อยากเข้ามานั่ง re-new ทุกๆ 3 เดือน แนะนำว่าใช้วิธีตั้ง schedule cron job ให้มันทำการ re-new อัตโนมัติไปเลยจะดีกว่านะครับ

กรณีถ้าอยาก renew แบบ manual ก็ทำได้เช่นกัน

เพื่อให้ชัวส์ ทำการตรวจสอบ SSL อีกที ผ่านเว็บไซด์ SSLShopper

https://www.sslshopper.com/ssl-checker.html
https://www.ssllabs.com/ssltest/

Yeah !!!  ในทีสุด.. ตอนนี้เว็บเราสามารถรองรับ HTTPS/SSL สะที เย้…

ถ้าใช้ Nginx อยู่สามารถติดตาม บทความด้านล่างได้เลยครับ
– วิธีเปิดใช้งาน PHP 7 บน Vesta CP เพื่อใช้งานร่วมกับ Nginx + PHP-FPM
– วิธีเปิดใช้งาน Nginx ให้รองรับ HTTP/2 บน CentOS 7

หวังว่าบทความนี้น่าจะเป็นประโยชน์กับท่านผู้อ่านไม่มากก็หน่อย  และถ้าหากมีข้อผิดพลาดประการใด จึงขออภัยมา ณ ที่นี้ด้วยนะครับ

ขอบคุณครับ
Admin@rockdevper

Ref
https://letsencrypt.org/
https://digitz.org/blog/lets-encrypt-ssl-centos-7-setup/
http://qiita.com/hiropopjp/items/f32c097982702286f466
https://blog.apar.jp/linux/3619/
http://letsencrypt.readthedocs.org/en/latest/using.html#letsencrypt-auto

Facebook Comments
Share Button

Watchara Pongsri

Senior Software Engineer, Network Engineer CEH, CHFI, ECSA, MCSA My hobby is - Blogger - Programming & Security Researcher

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle Plus

วิธีติดตั้ง Let’s encrypt SSL (Free SSL) บน CentOS 7 เพื่อทำให้เว็บไซต์มีความปลอดภัยและน่าเชื่อถือ