ต่ออายุ Let's encrypt (SSL certificate) สำหรับ Hugo blog บน Gitlab Pages

Posted on
tips

เช้าวันนี้เปิดอีเมล ได้รับอีเมลแจ้งเตือนจาก lets’s encrypt ว่า SSL certificate ของ domain name ที่ทำเป็น blog กำลังจะหมดอายุ blog นี้เองนี่หล่ะ วิธีมันจะไม่ automatic ต้องทำเองเป็นครั้งๆไป

วิธีที่จะทำ

  • รันคำสั่ง certbot certonly เพื่อ renew/ต่ออายุ รันจากเครื่อง macbook ที่ใช้ทำงาน
  • เอา hash ที่ได้มาใส่ไฟล์แล้ว push ขึ้นไปที่ gitlab
  • เอา key ที่ได้ renew แล้วไป upload ขึ้น gitlab ใหม่

ขั้นตอน

เมื่อติดตั้ง certbot command line บน macOS แล้ว

เปิด Terminal/iTerm2 พิมพ์คำสั่ง

❯ sudo certbot certonly -d by.dahoba.xyz --manual
Password:

มันจะถามว่า IP ที่ใช้รันคำสั่งนี้จะถูกบันทึกไว้นะ ยอมรับได้ไหม? ต้องตอบตกลงถึงจะได้ทำต่อ

NOTE: The IP of this machine will be publicly logged as having requested this certificate. If you’re running certbot in manual mode on a machine that is not your server, please ensure you’re okay with that.

Are you OK with your IP being logged?

(Y)es/(N)o:

เมื่อกด Y ตกลง จะเห็นข้อความทำนองนี้ (เจ้า *** ผมใส่เองนะของจริงไม่มี)

Make sure your web server displays the following content at
http://by.dahoba.xyz/.well-known/acme-challenge/oZlA7JR0_NvjRA6paYR2tNJVKX52COK5E_qcTT**** before continuing:

oZlA7JR0_NvjRA6paYR2tNJVKX52*****_qcTTqRa6Y.0DEVnB4emccPvIDXe7WXV3ygZv-****7IDtgLUafP-o

If you don't have HTTP server configured, you can run the following
command on the target server (as root):
...

ให้เปิด gitlab มารอไว้ที่ folder .wellknown เลย

Imgur

กด + สร้างไฟล์

Imgur

Copy content ที่เห็นใน terminal ลงไป ประมาณนี้

Imgur

กดปุ่ม Commit Changes

Imgur

รอแป๊บนึงสัก 1 นาที

แล้วกด Enter ที่หน้าต่าง Terminal

Imgur

ถ้าสำเร็จจะเห็นข้อความประมาณด้านล่างนี้

-------------------------------------------------------------------------------
Press Enter to Continue
Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/by.dahoba.xyz/fullchain.pem. Your cert will
   expire on 2017-09-11. To obtain a new or tweaked version of this
   certificate in the future, simply run certbot again. To
   non-interactively renew *all* of your certificates, run "certbot
   renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

   707s

เปิดหน้า Settings ของ Pages ลิ้งเมนูตามภาพ

Imgur

ลบ Domain ที่มีอยู่ออกก่อน

Imgur

แล้วกด + New Domain

Imgur

Domain คือชื่อเดิมที่ใช้อยู่ Certificate (PEM) และ Key (PEM) จะได้มาด้วยคำสั่งตามตัวอย่างด้านล่าง

Certificate (PEM)

ใช้คำสั่ง

sudo cat /etc/letsencrypt/live/by.dahoba.xyz/fullchain.pem
Password:

เมื่อใส่ password ของ sudo แล้วจะได้ content Certificate เป็น hash ยาวๆแบบนี้

วิธีเอาไปใช้คือให้ copy ตั้งแต่บรรทัดบอกเริ่ม(-----BEGIN CERTIFICATE-----)จนถึงบรรทัดบอกจบ (-----END CERTIFICATE-----) ตัวสุดท้าย

-----BEGIN CERTIFICATE-----
MIIE/TCCA+WgAwIBAgISBDDdKHroQ/
...
SV3
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEkjC
...
/DNFu0Qg==
-----END CERTIFICATE-----

Key (PEM)

ใช้คำสั่ง

sudo cat /etc/letsencrypt/live/by.dahoba.xyz/privkey.pem

ได้ content ของ Key เป็น hash แบบนี้

-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9
...
7xqg3dF3rJ+KygDJ6T1cT7M=
-----END PRIVATE KEY-----

วิธีเอาไปใช้คือให้ copy ตั้งแต่บรรทัดบอกเริ่ม (-----BEGIN PRIVATE KEY-----) จนถึงบรรทัดบอกจบ (-----END PRIVATE KEY-----)

ใส่ครบแล้วกด Create New Domain

Imgur

รอสักครู่ใหญ่ๆ หรืออาจจะข้ามวัน certificate ตัวใหม่ของเราก้อจะตรวจพบได้

ภาพนี้ check ด้วย Chrome

Imgur