Wednesday, June 9, 2021

Client with the currently selected authenticator does not support any combination of challenges that will satisfy the CA

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