3x-ui3x-ui
پیکربندی

گواهی‌های SSL

دریافت و تمدید گواهی‌های TLS برای پنل و ورودی‌های 3x-ui — با منوی ACME در x-ui (دامنه یا IP خام)، گواهی wildcard از طریق Cloudflare DNS-01، یا Certbot دستی.

یک گواهی TLS به شما امکان می‌دهد پنل را روی HTTPS سرویس‌دهی کنید (تا ترافیک ورود و API شما رمزگذاری شود) و TLS را روی ورودی‌ها خاتمه دهید (VLESS-TLS، Trojan، Shadowsocks-TLS و موارد مشابه). سه راه برای به‌دست‌آوردن گواهی وجود دارد:

  • منوی x-ui — کلاینت داخلی ACME. آسان‌ترین گزینه برای یک دامنه‌ی واحد یا یک IP خام.
  • Cloudflare DNS-01 — این هم از همان منو؛ برای گواهی‌های wildcard یا زمانی که پورت 80 مسدود است / سرور پشت پراکسی Cloudflare قرار دارد لازم است.
  • Certbot دستی — اگر ترجیح می‌دهید acme.sh/Certbot را خودتان مدیریت کنید.

اگر پنل را پشت Nginx یا Caddy قرار می‌دهید، بگذارید پراکسی به‌جای شما گواهی را مدیریت کند — به پراکسی معکوس مراجعه کنید. ورودی‌های REALITY هیچ گواهی‌ای نیاز ندارند؛ آن‌ها TLS یک سایت واقعی را قرض می‌گیرند. این صفحه برای پنل و برای ورودی‌های کلاسیک TLS است.

منوی SSL در x-ui (Let's Encrypt)

x-ui را اجرا کنید و 20 — SSL Certificate Management را انتخاب کنید. این گزینه acme.sh را به کار می‌گیرد و موارد زیر را ارائه می‌دهد:

گزینهکاری که انجام می‌دهد
Get SSL (Domain)صدور گواهی برای یک دامنه از طریق اعتبارسنجی HTTP.
Get SSL for IP Addressصدور یک گواهی کوتاه‌مدت (۶ روزه، با تمدید خودکار) برای یک IP خام.
Revokeباطل‌کردن یک گواهی موجود.
Force Renewتمدید همین حالا، پیش از انقضا.
Show Existing Domainsفهرست‌کردن گواهی‌هایی که از پیش روی سرور هستند.
Set Cert paths for the panelاشاره‌دادن TLS پنل به یک گواهی صادرشده (فیلدها را برای شما تنظیم می‌کند).

صدور گواهی برای یک دامنه

دامنه را به سرور اشاره دهید

یک رکورد A (و/یا AAAA) برای دامنه‌ی خود بسازید که به IP عمومی این سرور اشاره کند. تا زمانی که DNS منتشر (propagate) نشده باشد، اعتبارسنجی ناموفق خواهد بود.

پورت 80 را آزاد کنید

اعتبارسنجی HTTP نیاز دارد که پورت 80 از اینترنت در دسترس باشد و از پیش در حال استفاده نباشد. هر چیزی را که به آن متصل است برای این مدت متوقف کنید و آن را از فایروال عبور دهید.

صادرکننده را اجرا کنید

x-ui20Get SSL (Domain)، سپس دامنه را وارد کنید. acme.sh گواهی را درخواست می‌کند و آن را زیر /root/cert/<domain>/ به‌صورت fullchain.pem (زنجیره‌ی گواهی) و privkey.pem (کلید خصوصی) ذخیره می‌کند.

آن را به پنل متصل کنید

گزینه‌ی Set Cert paths for the panel را انتخاب کنید تا webCertFile و webKeyFile پر شوند و پنل راه‌اندازی مجدد شود، یا آن‌ها را خودتان در تنظیمات پنل تنظیم کنید. به‌محض تنظیم‌شدن هر دو، پنل HTTPS را سرویس‌دهی می‌کند.

صدور گواهی برای یک IP خام

دامنه‌ای ندارید؟ گزینه‌ی Get SSL for IP Address را انتخاب کنید تا یک گواهی کوتاه‌مدت (با اعتبار حدود ۶ روز، که به‌صورت خودکار تمدید می‌شود) متصل به IP سرور به‌دست آورید. برای دسترسی به پنل روی HTTPS پیش از آنکه دامنه‌ای راه‌اندازی کنید مفید است.

Cloudflare (گواهی wildcard با DNS-01)

اعتبارسنجی DNS به‌جای پاسخ‌دادن روی پورت 80، با ساختن یک رکورد TXT ثابت می‌کند که شما دامنه را در اختیار دارید — بنابراین پشت پراکسی Cloudflare، روی سرورهایی که پورت 80 در آن‌ها مسدود است، و برای گواهی‌های wildcard (*.example.com) کار می‌کند.

DNS دامنه‌ی شما باید توسط Cloudflare مدیریت شود و به یکی از این موارد نیاز دارید:

  • یک توکن API محدودشده با مجوز Zone:DNS:Edit (توصیه‌شده)، یا
  • ایمیل حساب + Global API Key.

یک توکن API محدودشده بسازید

در داشبورد Cloudflare به My Profile → API Tokens → Create Token بروید، قالب Edit zone DNS را انتخاب کنید، آن را به zone‌ای که برایش گواهی صادر می‌کنید محدود کنید و آن را بسازید. توکن را کپی کنید — فقط یک‌بار نمایش داده می‌شود.

صادرکننده‌ی Cloudflare را اجرا کنید

x-ui21 — Cloudflare SSL Certificate. هنگام پرسش، t را برای یک توکن API (پیش‌فرض) یا g را برای Global API Key انتخاب کنید، سپس دامنه‌ی خود را وارد کنید (و برای Global API Key، ایمیل حساب و کلید خود را). acme.sh رکورد TXT را می‌سازد، اعتبارسنجی می‌کند و آن را پاک‌سازی می‌کند.

پنل را به آن اشاره دهید

مانند جریان دامنه، از Set Cert paths for the panel (منوی 20) استفاده کنید یا webCertFile / webKeyFile را در تنظیمات پنل تنظیم کنید.

یک توکن محدودشده را به Global API Key ترجیح دهید — آن فقط اجازه‌ی ویرایش DNS را روی zoneای که انتخاب می‌کنید می‌دهد، بنابراین نشت آن نمی‌تواند به بقیه‌ی حساب Cloudflare شما دست بزند.

دستی (Certbot)

اگر ترجیح می‌دهید از منو استفاده نکنید، یک گواهی را با افزونه‌ی standalone مربوط به Certbot صادر کنید (این هم نیاز دارد که پورت 80 آزاد باشد و دامنه به سرور اشاره کند):

apt-get install certbot -y
certbot certonly --standalone --agree-tos --register-unsafely-without-email -d yourdomain.com
certbot renew --dry-run

Certbot گواهی را در /etc/letsencrypt/live/yourdomain.com/ می‌نویسد (fullchain.pem و privkey.pem). پنل را در تنظیمات پنل به آن دو فایل اشاره دهید و تمدید را راه‌اندازی کنید — certbot renew به‌صورت پیش‌فرض روی یک تایمر systemd اجرا می‌شود.

استفاده از گواهی

  • پنلwebCertFile (زنجیره‌ی کامل) و webKeyFile (کلید خصوصی) را در تنظیمات پنل تنظیم کنید. برای آنکه پنل به HTTPS سوئیچ کند، هر دو باید تنظیم شوند. گزینه‌ی منوی 11 — View Current Settings مسیرهای درحال‌استفاده‌ی فعلی را چاپ می‌کند.
  • ورودی‌ها — وقتی TLS را روی یک ورودی فعال می‌کنید، در تنظیمات TLS همان ورودی به همان فایل‌های گواهی و کلید ارجاع دهید (یا محتوای آن‌ها را جای‌گذاری کنید). به ورودی‌ها و ترابری‌ها مراجعه کنید.

گواهی‌ها منقضی می‌شوند (Let's Encrypt: ۹۰ روز؛ گواهی‌های IP: حدود ۶ روز). هم منو و هم Certbot به‌صورت خودکار تمدید می‌کنند، اما پنل همچنان فایل‌ها را در مسیرهای ثابت‌شان می‌خواند — بنابراین در همان محل تمدید کنید نه با جابه‌جاکردن فایل‌ها، و پنل در راه‌اندازی مجدد بعدی‌اش گواهی جدید را برمی‌دارد. Force Renew (منوی 20) یک تمدید را به‌صورت درخواستی فعال می‌کند.

گام‌های بعدی

On this page