nsindocs جستجو در مستندات⌘K
  1. مستندات
  2. 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/ دانلود کنید:

bash
curl -o ~/.acme.sh/dnsapi/dns_nsin.sh https://nsin.ir/docs/dns_nsin.sh

key خودتان را تنظیم کنید — acme.sh آن را برای renewal در account.conf ذخیره می‌کند:

bash
export NSIN_Api_Key="nsin_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
متغیر لازم است؟ توضیح
NSIN_Api_Key بله API key انسین (با nsin_ شروع می‌شود، غیر read-only).
NSIN_Api نه Base URL خود API. پیش‌فرض https://api.nsin.ir.

صدور یک گواهی

bash
# یک 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ها را نشان می‌دهد.
esc