افزونه DNS برای acme.sh
افزونهی dns_nsin به acme.sh
اجازه میدهد چالش DNS-01 پروتکل ACME را با ساخت و حذف خودکار رکوردهای TXT با
نام _acme-challenge روی زون نسین شما حل کند. برای گواهیهای وایلدکارت
(*.example.com) که حتماً به اعتبارسنجی DNS نیاز دارند، راه همین است.
احراز هویت با کلید API انجام میشود — همان کلیدی که برای REST API استفاده میکنید — پس نیازی به مدیریت اطلاعات ورود جداگانهی DNS نیست.
پیشنیازها
Section titled “پیشنیازها”- دامنهی شما روی نسین باشد و رکوردهایش اینجا مدیریت شوند (نسین برای زون authoritative باشد).
- یک کلید API غیر فقطخواندنی. DNS-01 رکورد TXT میسازد و حذف میکند، پس کلید فقطخواندنی در مرحلهی نوشتن رد میشود. از panel.nsin.cloud → Settings → API Keys یکی بسازید.
افزونه را دانلود کنید: dns_nsin.sh
آن را در پوشهی dnsapi/ مربوط به acme.sh (~/.acme.sh/dnsapi/) کپی کنید:
curl -o ~/.acme.sh/dnsapi/dns_nsin.sh https://nsin.cloud/docs/dns_nsin.shپیکربندی
Section titled “پیکربندی”کلید را یکبار export کنید — acme.sh آن را در account.conf ذخیره میکند و در هر
تمدید دوباره استفاده میکند:
export NSIN_Api_Key="nsin_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"| متغیر | الزامی | توضیح |
|---|---|---|
NSIN_Api_Key | بله | کلید API نسین (با nsin_ شروع میشود و فقطخواندنی نیست). |
NSIN_Api | خیر | تغییر آدرس پایهی API. پیشفرض https://api.nsin.cloud. |
صدور گواهی
Section titled “صدور گواهی”# یک نام میزبانacme.sh --issue --dns dns_nsin -d example.com -d www.example.com
# وایلدکارت (نیازمند DNS-01)acme.sh --issue --dns dns_nsin -d example.com -d '*.example.com'acme.sh افزونه را صدا میزند تا هر رکورد TXT با نام _acme-challenge را بسازد،
منتظر انتشار میماند و پس از اعتبارسنجی رکوردها را حذف میکند. چالش وایلدکارت و
چالش دامنهی اصلی نام یکسانی دارند با دو مقدار متفاوت — افزونه هرکدام را بهعنوان
رکورد جداگانه میسازد و جداگانه حذف میکند، پس هر دو درست مدیریت میشوند.
چطور کار میکند
Section titled “چطور کار میکند”- افزودن —
POST /domains/{domain}/records/با{"name":"_acme-challenge","type":"TXT","destination":"<value>"}. - حذف — رکوردها را فهرست میکند، رکورد TXT با مقدار چالش را مییابد و
DELETE /domains/{domain}/records/{id}را صدا میزند.
افزونه زون قابل ثبت را با تطبیق نام چالش با فهرست دامنههای حساب شما تشخیص
میدهد، پس گواهی زیردامنهها (_acme-challenge.sub.example.com) بدون تنظیم اضافه
کار میکند.
عیبیابی
Section titled “عیبیابی”read-only API keyیا403— کلید فقطخواندنی است؛ کلید جدیدی با دسترسی نوشتن بسازید.invalid domain— دامنه در حساب نسین شما نیست یا کاربر کلید به آن دسترسی ندارد. بررسی کنید درGET /domains/دیده شود.- شکست اعتبارسنجی — شاید DNS هنوز منتشر نشده باشد.
--dnssleep 60(یا بیشتر) اضافه کنید تا acme.sh پیش از درخواست اعتبارسنجی صبر کند. - برای دیدن دقیق درخواستها و پاسخهای API با
--debug 2اجرا کنید.