- مستندات
- API و MCP
پلاگین DNS برای acme.sh
با API key انسین و پلاگین acme.sh بهنام dns_nsin، گواهیهای Let's Encrypt (و سایر ACME) را با DNS-01 validation صادر کنید.
dns_nsin چالش ACME DNS-01 را برای acme.sh حل میکند: رکوردهای TXT بهنام _acme-challenge را روی zone انسین شما اضافه و حذف میکند، برای گواهیهای wildcard (*.example.com). با API key شما authenticate میشود، درست مثل REST API.
پیشنیازها
- Domain روی انسین باشد (authoritative برای آن zone).
- یک API key غیر read-only. در Settings → API Keys یکی بسازید.
نصب و تنظیم
dns_nsin.sh را در ~/.acme.sh/dnsapi/ دانلود کنید:
curl -o ~/.acme.sh/dnsapi/dns_nsin.sh https://nsin.ir/docs/dns_nsin.shkey خودتان را تنظیم کنید — acme.sh آن را برای renewal در account.conf ذخیره میکند:
export NSIN_Api_Key="nsin_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"| متغیر | لازم است؟ | توضیح |
|---|---|---|
NSIN_Api_Key |
بله | API key انسین (با nsin_ شروع میشود، غیر read-only). |
NSIN_Api |
نه | Base URL خود API. پیشفرض https://api.nsin.ir. |
صدور یک گواهی
# یک hostname
acme.sh --issue --dns dns_nsin -d example.com -d www.example.com
# Wildcard (نیازمند DNS-01)
acme.sh --issue --dns dns_nsin -d example.com -d '*.example.com'پلاگین رکورد TXT را اضافه میکند، صبر میکند، و بعد از validation آن را حذف میکند.
چطور کار میکند
- اضافه کردن —
POST /domains/{domain}/records/با{"name":"_acme-challenge","type":"TXT","destination":"<value>"}. - حذف — رکورد TXT منطبق را پیدا میکند،
DELETE /domains/{domain}/records/{id}را صدا میزند. - اسم چالش را با فهرست domainهای شما تطبیق میدهد — گواهیهای subdomain به تنظیم اضافهای نیاز ندارند.
رفع اشکال
read-only API key/403— از یک key با دسترسی write استفاده کنید.invalid domain— در account شما نیست، یا key دسترسی ندارد؛GET /domains/را چک کنید.- Validation شکست میخورد — DNS هنوز propagate نشده؛
--dnssleep 60(یا بیشتر) اضافه کنید. --debug 2— requestها و responseها را نشان میدهد.