เพิ่มความดูดีให้เว็บคุณด้วยพลังไฟเขียว Let’s Encrypt พร้อมการติดตั้งบน DirectAdmin

มาติด ssl certificate ฟรีๆเขียวๆให้เว็บบ้านๆดูดีในพริบตากับ Let’s Encrypt กัน เนื่องจากว่า cert ตัวนี้มีอายุ 90 วัน ทำให้วันนี้ผมต้องมาต่ออายุให้เจ้า laststraw.in.th เลยกะเขียนวิธีการไว้เตือนตัวเองด้วยบางทีก็ลืม วันนี้ผมเลยจะเขียนการขอ cert ตัวนี้กับเว็บ https://gethttpsforfree.com/ และการติดตั้ง cert ให้กับ hosting ที่ใช้ DirectAdmin (เจ้าอื่นก็ไปศึกษากันเองนะครัช) (ออกตัวก่อนเลยว่าผมก็ไม่เก่งด้านนี้ ก็ด้นสดไปเรื่อยแล้วก็ทำได้ครัช เลยเอามาบอกต่อ อิอิอิอิอิ ขออภัยหากข้อมูลผิดพลาดจ้า)

Edit: ถ้า DirectAdmin เวอร์ชัน 1.5 ขึ้นไปจะมีฟังก์ชันรองรับการทำ Let’s Encrypt แบบอัติโนมัติให้เลย ไม่ต้องมานั่งงมต่ออายุเหมือนผม ถถถถ งี้แหละใช้ Hosting คนอื่นก็งี้ เดี๋ยวว่างๆ ไปจัด DO นั่ง Setup server เองเลย ชีวิตจะได้ง่ายขึ้น ถถถ


เอาหละมาเริ่มกันเลย (แนะนำให้ทำบน Mac/Linux ครับเนื่องจากง่ายต่อการ gen key ต่างๆ)

เข้าเว็บ https://gethttpsforfree.com/ เลยจ้า

  1. Step 1 เป็นการสร้างบัญชีในการขอ cert ครับ
  • Account Email ใส่อีเมลไปเลยครับ อีเมลนี้ทาง Let’s Encrypt เขาจะส่งเมลมาตอน cert ใกล้หมดหรือแจ้งข่าวสารต่างๆครับ (กรณีทำใหม่รอบ2,3,4,ฯลฯ ผมไม่แน่ใจว่าซ้ำได้ไหม แต่ผมก็ใส่ใหม่ครับ key เก่าหาย!!)
  • Account Public Key ให้คลิก (how do I generate this?) ออกมาครับ ทำตามเลยจ้า เราจะได้ไฟล์ account.key (ให้เก็บไฟล์นี้ไว้ครับรอบหน้าจะได้ไม่ต้องสร้างใหม่หรือจะสร้างใหม่ก็แล้วแต่ครับ) ทำเสร็จแล้วให้ copy public key ที่ gen ได้ลงในกล่องเลยจ้า แล้วกด Validate Account Info รอจนขึ้นคำว่า “Looks good! Proceed to Step 2!”

2. Step 2 เป็นการขอ certificate signing request ให้คลิก (how do I generate this?) ออกมาครับ ทำตามครับเราจะได้ไฟล์ domain.key (เก็บไฟล์ไว้เหมือนกัน) ให้เปิดไฟล์นี้ด้วย NotePad หรือ TextEditor อะไรก็ได้ครับแล้ว copy ข้อมูลข้างในลงในกล่องเลยครับเสร็จแล้วกด Validate CSR รอจนขึ้นคำว่า “Found domains! Proceed to Step 3! (laststraw.in.th, www.laststraw.in.th)

— — — BEGIN CERTIFICATE REQUEST — — — 
xaxaxaxaxaxaxaxaxaxxaxaxaxaxaxaxaxaxa
axaxaxaxaxaxaxaxaxxaxaxaxaxaxaxaxaxax
 — — — END CERTIFICATE REQUEST — — —

3. Step 3 เป็นการ sign request ที่ขอไปด้วย account.key ของเราที่ gen ได้ข้างต้นครับ ให้ copy command แล้วรันใน terminal เลยครับ แล้ว copy ค่าที่ได้วางลงกล่อง ทำจนครบแล้วกด Validate Signatures รอจนขึ้นคำว่า “Step 3 complete! Please proceed to Step 4.”

4. Step 4 เป็นการยืนยันตนครับว่าคุณเป็นเจ้าของโดเมนหรือไม่ ให้ copy command แล้วรันใน terminal copy ค่าที่ได้ลงกล่อง จากนั้นใน option กรณีนี้ผมเลือกใช้ option 2 : file-based ทำดังนี้ครับ

  • ให้ ftp เข้าไป hosting folder “public_html” ครับ สร้าง folder “.well-known” ตามด้วย sub-folder “acme-challenge”
  • สร้างไฟล์ text ขึ้นมาครับ ให้ตั้งชื่อตามที่มัน gen มาให้ใน Under this url ครับ เช่น {www}/.well-known/acme-challenge/xaxaxaxa1234 จากนั้น save แบบไม่มีนามสกุลครับ
  • ต่อไปใน copy ข้อมูลในกล่อง Serve this content ลงในไฟล์ข้างบนครับ จากนั้นอัพโหลดไฟล์ไปไว้ที่ {www}/.well-known/acme-challenge/ ข้างต้นครับ เสร็จแล้วกด I’m now serving this file on {domain} รอจนขึ้นคำว่า “Domain verified!”

5. เสร็จแล้วครับ เราจะได้ certificate จาก Let’s Encrypt เป็นที่เรียบร้อยแล้วจำนวน 2 ใบ

  • Signed Certificate
  • Intermediate Certificate
— — — BEGIN CERTIFICATE — — — 
xaxaxaxaxaxaxaxaxaxaxaxaxaxax
axaxaxaxaxaxaxaxaxaxaxaxaxaxa
xaxaxaxaxaxaxaxaxaxaxaxaxaxax
axaxaxaxaxaxaxaxaxaxaxaxaxaxa
 — — — END CERTIFICATE — — —

ต่อไปเป็นการติดตั้ง Certificate ที่ได้มาลงบน Hosting ที่ใช้ DirectAdmin ครับ

  1. เข้า DirectAdmin ครับ จากนั้นไปที่ Advanced Features > SSL Certificates

2. ก่อนอื่นต้อง Enable SSL ก่อนนะครับ จากนั้นเลือก Paste a pre-generated certificate and key ตรงนี้ให้ใส่ค่าในไฟล์ domain.key และ Signed Certificate ครับ ใส่ต่อกันตามตัวอย่างด้านล่างครับจากนั้นกด Save แล้วต้องขึ้นคำว่า “Certificate and Key Saved.” ถ้าไม่ใช่ให้กลับไปทำใหม่ครับ

— — — BEGIN RSA PRIVATE KEY — — — 
xaxaxaxaxaxaxaxaxaxxaxaxaxaxaxaxaxaxa
axaxaxaxaxaxaxaxaxxaxaxaxaxaxaxaxaxax
xaxaxaxaxaxaxaxaxaxxaxaxaxaxaxaxaxaxa
 — — — END RSA PRIVATE KEY — — — 
 — — — BEGIN CERTIFICATE — — — 
xaxaxaxaxaxaxaxaxaxxaxaxaxaxaxaxaxaxa
axaxaxaxaxaxaxaxaxxaxaxaxaxaxaxaxaxax
xaxaxaxaxaxaxaxaxaxxaxaxaxaxaxaxaxaxa
 — — — END CERTIFICATE — — —

3. ให้กลับมาหน้าในข้อ 2 ครับ เลือก Click Here to paste a CA Root Certificate

Certificate Authority SSL Certificate > เราจะทำการเพิ่ม cert ตรงนี้ครับ ให้ใส่ Signed Certificate ตามด้วย Intermediate Certificate ต่อการตามตัวอย่างเลยครับ จากนั้นกด Save แล้วต้องขึ้นคำว่า “Success” ถ้าไม่ใช่ให้กลับไปทำใหม่ครับ

— — — BEGIN CERTIFICATE — — — 
xaxaxaxaxaxaxaxaxaxxaxaxaxaxaxaxaxaxa
axaxaxaxaxaxaxaxaxxaxaxaxaxaxaxaxaxax
xaxaxaxaxaxaxaxaxaxxaxaxaxaxaxaxaxaxa
 — — — END CERTIFICATE — — — 
 — — — BEGIN CERTIFICATE — — — 
xaxaxaxaxaxaxaxaxaxxaxaxaxaxaxaxaxaxa
axaxaxaxaxaxaxaxaxxaxaxaxaxaxaxaxaxax
xaxaxaxaxaxaxaxaxaxxaxaxaxaxaxaxaxaxa
 — — — END CERTIFICATE — — —

4. พอถึงขั้นตอนนี้ก็เป็นอันเสร็จเรียบร้อยครับ ไปตรวจงานครับ จะเห็นว่าโดเมนเรามีไฟเขียวแล้วเย้ กดเข้าไปดูรายละเอียด cert ครับ มันจะบอกวันหมดอายุครับซึ่ง cert ตัวนี้จะใช้ได้ 90 วันครับ เสร็จแล้วเย้…… สวยงาม ดูดี(แค่โดเมน 5555) ลาก่อน สวัสดีครับ