Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA
- ได้ error นี้ตอนพยายาม create wildcard certificate ของ letsencrypt ด้วย certbot ใน Ubuntu 18.04
sudo certbot certonly --manual --preferred-challenges=dns --email admin@example.com --server https://acme-v02.api.letsencrypt.org/directory --agree-tos -d example.com -d *.example.com
- ปัญหาคือ certbot client เก่าไปว่างั้น รันดูด้วย $ sudo certbot --version ได้ 0.27 นะ ก็ยังใช้เวอร์ชั่นนี้ไม่ได้
- จะ apt install certbot ก็เป็น เวอร์ชั่นนี้แหละใหม่สุดว่างั้น
Solved
- ใช้ไม่ได้ก็ถอนมันออกก่อน ด้วยคำสั่ง
$ sudo apt-get remove certbot
- จากนั้นติดตั้ง certbot ผ่าน snapd (ถ้ามันยังไม่มี snap core มันจะติดตั้งให้อัตโนมัติด้วยคำสั่ง่ด้านล่าง)
$ sudo snap install --classic certbot
- เพิ่ม environment ให้ certbot โดยสร้างลิ้งไปไว้ใน /usr/bin/
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
- เราสามารถรัน certbot ได้เลยไม่ต้องใส่พาธเต็ม
- เช็ค certbot version อีกรอบเราจะได้ certbot 1.0 เลยนะ
$ sudo certbot --version
- รันคำสั่งสร้าง wildcard cer ได้เลย
sudo certbot certonly --manual --preferred-challenges=dns --email admin@example.com --server https://acme-v02.api.letsencrypt.org/directory --agree-tos -d example.com -d *.example.com
จากนั้นมันจะขึ้นให้ตรวจสอบ DSN ของเราจริงป่าว โดยสร้าง TXT Record ใส่ name เป็น _acme-challenge และ ใส่ค่าตามที่มันแสดงใน terminal
Please deploy a DNS TXT record under the name
_acme-challenge.example.com with the following value:
z5MrZ6d-aqFJQRmp_lGi9RTQHPa1aTC9J2O7wDKzp9
Before continuing, verify the record is deployed.
- รอสัก 10 นาที ค่อยกด Enter ต่อเพื่อ verify หรือมันจะมี url ตรวจสอบ dns record ว่า txt record เราเพิ่มสำเร็จยัง ถ้ามีแล้วกด Enter
- หรือเช็ค txt record ใหม่จากเว็บ https://mxtoolbox.com/TXTLookup.aspx ว่า record ใหม่เข้าหรือยัง โดยใส่ค่าค้นหาเป็น _acme-challenge.example.com
- มันจะสร้าง key ไว้ที่พาธนี้
/etc/letsencrypt/live/example.com/fullchain.pem
/etc/letsencrypt/live/example.com/privkey.pem
- กรณีมันมี certbot ที่สร้างไว้แล้วเช่น มี /etc/letsencrypt/live/example.com folder ตามพาธนี้แล้ว
- มันจะสร้างพาธใหม่ให้เราประมาณ
- /etc/letsencrypt/live/example.com-0001 ไล่ตัวเลขไปเรื่อยๆ
- ซึ่งเราสามารถลบมันออกได้โดย
$ sudo certbot delete --cert-name example.com
- มันก็จะไปลบ folder นั้นไป แล้วเราค่อยสร้าง cer ใหม่เราก็จะได้ /etc/letsencrypt/live/example.com มาพร้อม cer ใหม่ด้วย ทำให้ไม่ต้องไปแก้ config ใน vhost
- อายุ cer เค้า 90 วัน เราตั้งค่าให้สร้างใหม่อัตโนมัติโดย
$ sudo crontab -e
0 1 * * * /usr/bin/certbot renew >> /var/log/letsencrypt/renew.log
Ref
- https://lakin-mohapatra.medium.com/generate-lets-encrypt-free-wildcard-certificate-on-ubuntu-18-dcf26f458e13
- https://studiesonline.in/setup-and-install-lets-encrypt-wildcard-ssl-on-ubuntu-18-04-20-04/
- https://certbot.eff.org/lets-encrypt/ubuntubionic-apache
No comments:
Post a Comment