Piyanat Nimkhuntod
4 min readDec 17, 2020

การทำ SSL ให้กับ website ด้วย ubuntu apache

ทำ VPS ว่าเหนื่อยแล้ว แต่เมื่อต้องมาทำ SSL ให้กับ Domain ความท้าทายจึงเกิดขึ้น

ขั้นแรกก็คงต้องหา Agency ที่ให้บริการด้าน SSL ซึ่งก็มีมากมายในตลาด อันนี้แล้วแต่ความพอใจเลยครับ เมื่อเราเลือกได้แล้ว กรณีของผมเขาจะให้กรอกแบบฟอร์มสั่งซื้อ

  1. กรอก Domain ของเราเข้าไป

2.กรอกรายละเอียด

เมื่อกดส่งข้อมูล ระบบจะส่งใบแจ้งหนี้ให้เราครับ เราก็ทำการจ่ายเงินได้เลย

เมื่อเราส่งหลักฐานการจ่ายเงินแล้วเราก็จะได้เมล์เพื่อให้เริ่มทำ CSR

เมื่อจ่ายเงินเสร็จผู้ให้บริการจะให้เราสร้าง CSR ขึ้นมา โดยอาศัยเครื่องมือที่มีอยู่ทั่วไปตาม Internet ครับ กรณี ของผมใช้ https://ssl.in.th/tools/about-ssl/ ให้เราเลือก ปุ่มที่ชื่อว่า CSR Generator

กรอกรายละเอียดลงไป แล้วกด “สร้าง CSR”

เราจะได้ไฟล์เข้ารหัส เป็น CSR และ Private Key มาให้เรา Save เก็บไว้ครับ แล้วส่งเฉพาะ CSR ที่เข้ารหัส กลับไปให้ Agency ส่วน Private Key เราเก็บไว้

โดย Private key ให้ save

สามารถถอดรหัส CSR กลับได้ โดยใช้ CSR Decoder ได้ แบบนี้แสดงว่าถูกต้องครับ ส่งเมลล์กลับไปหา agency เพื่อ แจ้ง CSR ได้

เราจะได้เมล์ตอบกลับจาก agency เขาเรา เขาจะให้เรา เพิ่ม DSN TXT ใน Domain ของเราตามเมล์ที่ให้มาครับ

เอาไปใส่ ใน DNS Record ของ Hosting หรือ Domain โดยเลือก TXT ใส่ value เป็นค่า

เมื่อใส่แล้วก็จะได้แบบนี้ จากนั้นก็รอจน DNS อัพเดต

เข้าไปเช็ค DNS อัพเดตได้ที่ https://ssl.in.th/tools/dns-checker/

เมื่อได้แล้วเราก็จัดการส่ง เมลล์กลับไปบอก ทาง agency เขาจะส่งเมลล์กลับมาบอกดังนี้ พร้อมกับแนบไฟล์ zip มาด้วย

ในไฟล์ Zip ประกอบไปด้วยไฟล์ 3 ไฟล์ คือ

บทความนี้จะเป็นการตั้งค่าใน ubuntu

ให้เราใช้ ssh client เข้าไปจัดการนะครับ พวก winscp หรือ putty
โดย copy ไฟล์ เอาไปเก็บไว้ใน /etc/apache2/ssl

เปลี่ยนชื่อไฟล์โดย
DigiCertCA.crt → intermediate.crt
TrustRoot → ไม่ต้องเปลี่ยน
www_domainname.cert → certificate.crt
และเอา privatekey ที่ได้จากตอนแรกมาใส่ด้วย

ทีนี้เรามาทำการตรวจสอบว่า Server เรารองรับการใช้งาน mod_ssl ในหน้า command-line แล้วพิพม์คำสั่งด้านล่าง

ll /etc/apache2/mods-available/ | grep ssl.*

หากขึ้นเหมือนภาพ แสดงว่าถูกแล้ว ถ้าไม่ขึ้นอะไรเลยก็แสดงว่า mod_ssl ไม่ทำงาน

แต่ว่าถ้าหาก mod_ssl ไม่ทำงาน ให้ลองใช้คำสั่งด้านล่างเพื่อตรวจสอบว่าเราตั้งค่า mod ssl ได้ถูกต้องหรือไม่

ll /etc/apache2/mods-enabled/ | grep ssl.*

ถ้าถูกก็จะขึ้นประมาณนี้ แปลว่าถูกเรียกใช้แล้วครับ

แต่ถ้าไม่ได้ก็ต้องใช้คำสั่ง เพื่อเปิดใช้งาน

a2enmod enable ssl

สั่งให้ default-ssl.conf มายัง folder /etc/apache2/sites-enabled/

cd /etc/apache2/sites-enabled/
ln -s ../sites-available/default-ssl.conf

จากนั้นทำการตรวจการตั้งค่า SSL Certificate ว่าถูกเปิดใช้งานหรือยัง

ll /etc/apache2/sites-available/

ถ้า work มันจะขึ้นแบบนี้

ถ้าไม่ work ให้ไล่เช็คใหม่ตั้งแต่แรกอีกที แต่ถ้าสำเร็จก็

สั่ง Restart apache ด้วยคำสั่ง เพื่อรับค่าใหม่

systemctl restart apache2

สุดท้าย แต่ไม่ท้ายสุด ให้เราเข้าไปที่ Path /etc/apache2/sites-available

แล้วแก้ไข ไฟล์ที่ชื่อ default-ssl.conf

กดค้นหาบรรทัดที่มีคำว่า “SSLCertificateFile” แล้วเปลี่ยนด้านท้ายเป็น

/etc/apache2/ssl/certificate.crt

กดค้นหาบรรทัดที่มีคำว่า “SSLCertificateKeyFile” แล้วเปลี่ยนด้านท้ายเป็น

/etc/apache2/ssl/privatekey.key

กดค้นหาบรรทัดที่มีคำว่า SSLCertificateChainFile แล้วเปลี่ยนด้านท้ายเป็น

/etc/apache2/ssl/intermediate.crt

สั่ง Restart Service อีกครั้งหนึ่ง

systemctl restart apache2

จากนั้นลองเข้าเว็บด้วย htts://www.yourdomain.com ก็จะพบว่ามีรูปแม่กุญแจขึ้นแล้ว

ให้เราเข้าไปเช็คที่ ssl checker too https://ssl.in.th/ssl-checker/ โดยใส่ URL ของเราให้เรียบร้อยแล้วกดเช็ค

หากสำเร็จก็จะขึ้นแบบนี้

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

No responses yet

Write a response

More from Piyanat Nimkhuntod