Let’s Encrypt เป็นใบรับรองฟรีสำหรับการเข้ารหัส TLS ซึ่งจะทำให้ HTTPS เข้ารหัสบนเว็บเซิร์ฟเวอร์ได้ค่ะ
ซึ่งการใช้งาน Certbot Let’s Encrypt จะช่วยลดขั้นตอนการยุ่งยากในการตรวจสอบการติดตั้งและการต่ออายุใบรับรอง
บทความนี้เราจะมาสอนการใช้ Certbot เพื่อตั้งค่าใบรับรอง TLS/SSL จาก Let’s Encrypt บนเซิร์ฟเวอร์ Centos 7
ซึ่งใช้งาน Apache เป็นเว็บเซิร์ฟเวอร์ หมายเหตุ. การกำหนดค่าคอนฟิคเราอยู่ที่ /etc/https/conf.d/domain.com.conf
ขั้นตอนในการติดตั้ง Certbot Let’s Encrypt
ดำเนินการติดตั้ง Certbot, mod_ssl โมดูลของ Apache ใช้สำหรับ Let’s Encrypt
เปิดใช้งาน EPEL เพื่อติดตั้ง Certbot เนื่องจาก Certbot ไม่สามารถใช้งานร่วมกับ package manager ของค่าเริ่มต้นได้
# yum -y install epel-release
# yum install certbot python2-certbot-apache mod_ssl
ระหว่างการติดตั้งระบบจะถามเกี่ยวกับการนำเข้าคีย์ GPG ให้ยอมรับคีย์โดยพิมพ์ y และกด ENTER เพื่อให้การติดตั้งเสร็จสิ้น
ขั้นตอนในการขอ SSL certificate
เมื่อติดตั้ง Certbot เรียบร้อยแล้วสามารถ Let’s Encrypt เพื่อขอ SSL certificate สำหรับโดเมนเดียวด้วยคำสั่ง
# certbot --apache -d domain.com
หรือ Let’s Encypt สำหรับหลายโดเมนหรือโดเมนย่อยให้ติดแท็ก -d ไว้ด้านหน้าแต่ละโดเมนหรือโดเมนย่อย
โดยให้ขึ้นต้นด้วยโดเมนหลัก ตามด้วยโดเมนย่อยหรือนามแฝงโดเมน
# certbot --apache -d domain.com -d www.domain.com
ในตัวอย่างนี้โดเมนหลักคือ domain.com
เมื่อการติดตั้งเสร็จสิ้น ระบบจะแสดงข้อความดังนี้
Output
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/domain.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/domain.com/privkey.pem
Your cert will expire on 2021-12-14. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. 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
SSL certificate จะสร้างขึ้นภายในไดเร็กทอรี่ย่อยที่ตั้งชื่อตามโดเมนหลักใน
/etc/letsencrypt/live/domain.com
ขั้นตอนในการต่ออายุ SSL certificate อัตโนมัติ
Let’s Encrypt certificate มีอายุ 90 วัน เราจึงแนะนำให้ต่ออายุ certificate ทุกๆ 60 วันค่ะ
การต่ออายุ SSL certificate ใช้คำสั่ง
# certbot renew --dry-run
เมื่อการต่ออายุเสร็จสิ้น ระบบจะแสดงข้อความดังนี้
Output
Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/domain.com.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert not due for renewal, but simulating renewal for dry run
Plugins selected: Authenticator apache, Installer apache
Starting new HTTPS connection (1): acme-staging-v02.api.letsencrypt.org
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for domain.com
http-01 challenge for www.domain.com
Waiting for verification...
Cleaning up challenges
Resetting dropped connection: acme-staging-v02.api.letsencrypt.org
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
new certificate deployed with reload of apache server; fullchain is
/etc/letsencrypt/live/domain.com/fullchain.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
** DRY RUN: simulating 'certbot renew' close to cert expiry
** (The test certificates below have not been saved.)
Congratulations, all renewals succeeded. The following certs have been renewed:
/etc/letsencrypt/live/domain.com/fullchain.pem (success)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
หมายเหตุ.หากสร้าง certificate แบบรวมหลายโดเมนระบบจะแสดงแค่ชื่อโดเมนหลักเท่านั้น แต่การต่ออายุจะมีผลกับโดเมนทั้งหมด
ใช้ crontab ในการตั้งค่าการต่ออายุ SSL certificate ให้ทำงานทุกๆ 60 วันตามที่แนะนำ
# crontab -e
ให้กด i และเพิ่มข้อความต่อไปนี้
0 0 */60 * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew
เมื่อเสร็จเรียบร้อยให้ออกจากโหมด vi ให้กด ESC จากนั้น :wq และ ENTER บันทึกและออก
HostPacific หวังเป็นอย่างยิ่งว่าบทความนี้จะเป็นประโยชน์ต่อผู้ใช้งานทุกท่านค่ะ