ปัจจุบัน ส่วนใหญ่ของトラフィคเว็บถูกเข้ารหัสด้วย HTTPS มันกลายเป็นที่นิยมมากขึ้น โดยเฉพาะหลังจากการแนะนำ Let's Encrypt องค์การออกใบรับรอง (CA) ที่ได้รับการสนับสนุนจากบริษัทใหญ่ในอุตสาหกรรม Let's Encrypt ให้ใบรับรอง SSL/TLS ฟรี تمامًا ระยะเวลา 90 วัน
โดยทั่วไป ใบรับรองจะผูกกับชื่อโดเมนเฉพาะเจาะจง หากคุณมีใบรับรองสำหรับ "www.example.com" คุณสามารถใช้ได้กับโดเมนที่แน่นอนนี้เท่านั้น ส่วนใบรับรอง wildcard จะออกสำหรับโดเมนหลัก และใช้ได้กับซับโดเมนใดๆ ของโดเมนหลัก ตัวอย่างเช่น ใบรับรอง wildcard สำหรับ *.example.com ใช้ได้กับ "www.example.com", "account.example.com", "mail.example.com" ฯลฯ ใบรับรอง wildcard จึงให้ประโยชน์ว่าแค่ขอและต่ออายุใบรับรองเดียวสำหรับซับโดเมนทั้งหมดปัจจุบันและอนาคต
นี่คือวิธีขอใบรับรอง wildcard สำหรับโดเมนที่จดทะเบียนแล้วจาก Let's Encrypt บน Ubuntu, Debian และระบบ Debian-based อื่นๆ
1. ติดตั้ง acme.sh
Let's Encrypt ใช้โปรโตคอล Automated Certificate Management Environment (ACME) เพื่อยืนยันว่าคุณเป็นเจ้าของโดเมน และออก/ต่ออายุใบรับรอง Acme.sh เป็นไคลเอนต์ ACNE ยอดนิยมที่เขียนด้วย shell script เพื่อติดตั้ง คุณต้องติดตั้ง git ก่อน:
sudo apt update sudo apt install -y git
ดาวน์โหลด repository จาก github:
git clone https://github.com/Neilpang/acme.sh.git
เข้าสู่โฟลเดอร์ที่โคลนและเริ่มสคริปต์ติดตั้ง:
cd acme.sh/ ./acme.sh --install
โหลด shell session ใหม่เพื่อเริ่มใช้ acme.sh:
exec bash
2. ใช้ acme.sh ออกใบรับรอง wildcard
เพื่อให้ Let's Encrypt ออกใบรับรอง wildcard คุณต้องแก้ช่วงท้าทายแบบ DNS-based ที่รู้จักว่า Domain Validation (DV) Acme.sh รวมกับ API ของผู้ให้บริการ DNS หลักหลายแห่งและทำให้กระบวนการนี้อัตโนมัติสมบูรณ์
Cloudflare
หากคุณใช้บริการ DNS ของ Cloudflare ให้ล็อกอินบัญชีและคัดลอก Global API Key บันทึกเป็นตัวแปรสภาพแวดล้อมบนระบบ:
export CF_Key="your_cloudflare_api_key" export CF_Email="your_cloudflare_email_address"
ตอนนี้คุณสามารถขอใบรับรอง wildcard ได้:
acme.sh --issue --dns dns_cf -d '*.example.org'
NameCheap
หากคุณใช้เนมเซิร์ฟเวอร์ NameCheap ให้ทำตามคำแนะนำของพวกเขาในการเปิดใช้งาน API แล้วส่งออกตัวแปรที่จำเป็น:
export NAMECHEAP_SOURCEIP="your_server_ip" export NAMECHEAP_USERNAME="your_namecheap_username" export NAMECHEAP_API_KEY="your_namecheap_api_key"
ขอใบรับรอง wildcard:
acme.sh --issue --dns dns_namecheap -d '*.example.org'
DigitalOcean
หากโดเมนของคุณใช้ DNS ของ DigitalOcean ให้ทำตามคำแนะนำในการสร้าง personal access token ด้วยสิทธิ์อ่านและเขียน ส่งออก API key/token:
export DO_API_KEY="your_digitalocean_api_token"
ขอใบรับรอง wildcard:
acme.sh --issue --dns dns_dgon -d '*.example.org'
GoDaddy
หากโดเมนของคุณใช้ DNS ของ GoDaddy ให้คัดลอก API key และ secret ส่งออกไปยังสภาพแวดล้อม:
export GD_Key="your_godaddy_api_key" export GD_Secret="your_godaddy_api_secret"
ขอใบรับรอง wildcard:
acme.sh --issue --dns dns_gd -d '*.example.org'
Vultr
หากคุณใช้ DNS ของ Vultr คุณจะต้องมี personal access token หรือ sub-profile ที่มีสิทธิ์ "Manage DNS"
export VULTR_API_KEY="your_vultr_api_key"
ขอใบรับรอง wildcard:
acme.sh --issue --dns dns_vultr -d '*.example.org'
RackSpace
หากคุณใช้ RackSpace คุณจะต้องมี username และ API key ส่งออกดังนี้:
export RACKSPACE_Username="your_rackspace_username" export RACKSPACE_Apikey="your_rackspace_api_key"
ขอใบรับรอง wildcard:
acme.sh --issue --dns dns_rackspace -d '*.example.org'
กระบวนการด้วยตนเอง (Manual Process)
หากคุณไม่ต้องการหรือไม่สามารถใช้ API จากผู้ให้บริการ DNS คุณสามารถสร้างระเบียน DNS ด้วยตนเองเพื่อทำ domain validation challenge แตคุณจะต้องทำกระบวนการด้วยตนเองซ้ำๆ เพื่อต่ออายุโดเมน
acme.sh --issue --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please -d '*.example.org'
คำสั่งนี้จะแสดง verification token ที่คุณต้องเพิ่มเป็นระเบียน DNS TXT

คัดลอก token และล็อกอินเข้าคอนโทรลแพนเนล DNS สร้างระเบียน DNS ใหม่แบบ TXT สำหรับซับโดเมน _acme-challenge และวาง token

รอสักครู่ให้ระเบียนใหม่เข้าถึงได้ แล้วขอใบรับรอง:
acme.sh --renew --yes-I-know-dns-manual-mode-enough-go-ahead-please -d '*.example.org'
ตำแหน่งไฟล์
คุณจะพบใบรับรองและไฟล์ที่เกี่ยวข้องในไดเรกทอรี ".acme.sh" ในโฟลเดอร์ home
- ใบรับรองเองบันทึกเป็น "~/.acme.sh/*.example.org/*.example.org.cer"
- คีย์ใบรับรองบันทึกเป็น "~/.acme.sh/*.example.org/*.example.org.key" ไฟล์นี้ควรเก็บเป็นความลับและไม่ควรแชร์
- ไฟล์ fullchain certificate ซึ่งคุณน่าจะใช้มากที่สุด บันทึกเป็น "~/.acme.sh/*.example.org/fullchain.cer" ไฟล์นี้รวมใบรับรองของคุณกับของผู้ออกใบรับรอง (intermediate certificate)
ทำตามขั้นตอนด้านบน และคุณจะได้ใบรับรองโดเมน wildcard ของ Let's Encrypt