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

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 Developer, Network Engineer CEH, CHFI, ECSA, MCSA My hobby is - Blogger - Programming & Security Researcher

More Posts - Website

Follow Me:
TwitterFacebookLinkedInGoogle Plus

Related Post

วิธี Upgrade PHP บน MacOS Sierra ไปเป็น PHP versio...
views 1,010
บทความนี้จะมาแนะนำวิธีการ ติดตั้ง  PHP บน MacOS Sierra 10.12.1 ให้เป็น vesion ล่าสุด (ซึ่งตอนนี้ version ล่าสุดก็คือ PHP 7.1.X)  แต่หลังจากที่หลายๆ ท่...
มารู้จักวิธีการ Sync settings profile และ extensio...
views 1,636
หลายคนคงรู้จัก IDE ที่ชื่อ Visual studio code ของ Microsoft กันอยู่แล้ว  ชึ่งแน่นอนว่ามันเป็นที่ชื่นชอบคง developer หลายๆ คน รวมถึงผมด้วย  นอกจากมันจะ...
วิธีทำ Auto Mount Partition บน Linux หรือ Raspberr...
views 1,236
บทความนี้จะมาพูดถึงวิธีทำ auto mount สำหรับ Hard disk หรือ USB Drive บน Raspberry Pi หรือใช้กะ Linux ก็ได้เหมือนกัน โดยปรกติแล้วบน Raspberry เวลาเสีย...
วิธี Forward Port ร่วมกับ dynamic dns (No-ip) เพื่...
views 3,716
บทความนี้จะมาแนะนำวิธีการ Forward port เพื่อให้สามารถเข้าถึง Network ข้างในบ้าน ร่วมกับ dynamic dns อย่าง No-ip กัน โดยทั่วไปแล้ว ถ้ามีหากมี request ...
วิธีปรับแต่ง Terminal/Vim บน MacOS Sierra เพื่อให้...
views 991
หลังจากที่มาใช้ MacOS Sierra เหมือนผมจะมีปัญหากับปุ่ม Home/End สะเหลือเกิน  เนื่องจากบน Macbook มันจะไม่มีปุ่มดังกล่าวมาให้   ถ้าบน application อื่น เ...
มารู้จัก Sublist3r – Enumeration Tool เครื่อ...
views 981
Sublist3r เป็นเครืองมือในการค้นหารายละเอียดของ subdomains ที่เกี่ยวข้อง ภายใต้ เว็บไซต์เป้าหมาย  โดยการเก็บรายละเอียดนั้นจะอาศัย search engines อย่าง ...
วิธีเปิดใช้งาน Nginx ให้รองรับ HTTP/2 บน CentOS 7...
views 2,649
HTTP/2 หรือ (เดิมเรียกว่า HTTP/2.0) เป็นมาตรฐานใหม่ของ web protocol ซึ่งจะมาแทนที่ HTTP/1.1 ซึ่งออกมาตั้งแต่ 1997 (RFC 2068) และใช้อยู่จนถึงปัจจุบัน  ...
วิธีเปิดใช้งาน PHP 7 บน Vesta CP เพื่อใช้งานร่วมก...
views 3,654
ทุกวันนี้จะเห็นว่ามีคนหันมาใช้ VPS (Virtual Private Server) กันเยอะขึ้น  และคงจะรู้จักตัวจัดการ Hosting อย่าง Vesta CP กันมาบ้างแล้ว  ซึ่งเจ้า Vesta C...
วิธีเปิดใช้งาน mod_deflate (Compress ) บน Apache เ...
views 1,786
mod_deflate เป็น Module ของ web server ที่ใช้ในการบีบอัดขข้อมูล (Compress ) ให้มีขนาดเล็กลง ก่อนที่จะส่งไปให้ Client หลังจากฝั่ง Client (Browser) ได้ร...
วิธีปิดการให้บริการ SSLv3 บน Apache เพื่อป้องกันกา...
views 1,685
ที่ผ่านมาเราจะเคยได้ยินข่าว เกียวกับช่องโหว่ของ SSLv3 ซึ่งเป็น Protocol ที่ออกมาตั้งแต่ปี 1996 (เก่ามากๆ)  และเป็นช่องโหว่ที่ถือว่าร้ายแรงเหมือนกัน มี...
มาเริ่มต้นเรียนรู้วิธีใช้งาน Raspberry Pi แบบ Step...
views 13,635
Raspberry Pi เป็น Single Bord หรือจะว่ามันเป็น Embedded pc ก็ได้  ในตอนนี้ ถือว่ามันเป็นบอร์ดที่ยอดฮิต ณ. ปัจจุบัน เนื่องจากมีขนาดเล็ก (เล็กเท่ากับ AT...
วิธีการ Debug : MySQL Query Profiling บน Linux...
views 1,796
วันนี้จะมาแนะนำวิธีการ Debug Query บน MySQL  หรือเรียกอีกอย่าง คือ Profiler นั่นเอง  ซึ่งการทำ Profiler นั้น มันมีประโยชน์อย่างมากเลยในการวิเคราะห็ Pr...
แก้ปัญหาเวลาเปิด Visual Studio แล้ว Error “A...
views 2,391
บทความนี้จะแนะนำวิธีแก้ปัญหาเวลาเปิด Project visual studio แล้ว Error ข้อความข้างบน ซึ่ง Error เกิดจากเครืองเรายังไม่ได้ทำการ register .NET Framew...
วิธีติดตั้ง PHP เพื่อใช้งานกับ IIS ผ่าน (FastCGI) ...
views 9,140
ภาษา PHP เป็นภาษาที่นิยมกันอย่างแพร่หลายในปัจจุบัน เนืองจากเป็น Open source (ฟรี), เขียนง่าย แล้วยังสามารถรันได้แทบทุกระบบปฏิบัติการ (Cross platform) ...
ถึงเวลาที่จะต้อง Upgrade PHP 5.X มาเป็น PHP 7 บน C...
views 3,076
บทความนี้จะขอกล่าวถึงขั้นตอนในการ upgrade PHP version เก่า ให้เป็น PHP v7 ซึ่งเป็น version ใหม่ ของปี 2015 ซึ่งเป็นของใหม่ อยู่ ณ. ตอนนี้ และตอนนี้ Se...
เปลี่ยนจาก Shared Hosting มาเป็น VPS – Digit...
views 2,741
ช่วงนี้มีเวลาว่างเหลือนิดหน่อย เลยจะกลับมาเขียนบทความอีกครั้ง หลังจากช่วงหลังๆที่ผ่านมา งานประจำก็ยุ่งๆ เหลือเกิน + ความขี้เกีขจของผมเอง ^ ^" เลยไม่ค่...