فارسی
سرتیفیکیت
پنل خودش HTTPS را روی همان یک پورتش ارائه میکند. لازم نیست reverse proxy تنظیم کنید و آدرس IP و دامنه از یک راه به پنل میرسند.
هنگام نصب
سؤال سرتیفیکیت در نصاب چهار گزینه دارد:
| گزینه | اعتبار | پیشنیاز | مناسب برای |
|---|---|---|---|
| دامنه | ۹۰ روز | نامی که به این سرور اشاره کند، و پورت 80 در دسترس | پنلی که با نام دامنه در اختیار دیگران میگذارید |
| آدرس IP (پیشفرض) | ۶ روز، که تایمری هر ۶ ساعت تمدیدش میکند | پورت 80 در دسترس | هر سروری، حتی بدون دامنه |
| دلخواه | هر چه فایلها بگویند | مسیر فایلها | سرتیفیکیتی که خودتان مدیریت میکنید، از certbot یا wildcard |
| بدون سرتیفیکیت | یک پروکسی یا تونل SSH جلوی پنل | چیدمانهای پیشرفته |
هر دو حالت Let's Encrypt از acme.sh و چالش HTTP-01 روی یک لیسنر جداگانه استفاده میکنند. اگر برنامهٔ دیگری پورت 80 را گرفته باشد، نصب دستی پورت دیگری برای این لیسنر میپرسد و شما برای اعتبارسنجی، پورت 80 بیرونی را به آن فوروارد میکنید. نصب خودکار، و هر نصبی که ترمینالی برای پرسیدن ندارد، بهجای آن از سرتیفیکیت میگذرد و پورت 80 را به همان برنامه وامیگذارد.
تمدید به کاری از سمت شما نیاز ندارد
دو سازوکار سرتیفیکیت را تمدید میکنند و هر کدام بهتنهایی کافی است:
- ورودی cron که خودِ acme.sh نصب میکند؛
- تایمر systemd به نام
wui-cert-renew.timerکه هر شش ساعتacme.sh --cronرا اجرا میکند. این تایمر به این دلیل هست که خیلی از ایمیجهای کوچک اصلاً cron ندارند، و سرتیفیکیت ششروزه نمیتواند منتظر یک بررسی روزانه بماند.
bash
systemctl list-timers wui-cert-renew.timerبا تمدید، فایلهای سرتیفیکیت سر جای خودشان بازنویسی میشوند. پنل خودش متوجه میشود: وقتی فایلها عوض شوند دوباره آنها را میخواند، پس چیزی ریاستارت نمیشود و هیچ تونلی قطع نمیشود.
بعداً، از منو
w-ui ← 20. SSL certificate:
1. Get SSL (Domain)
2. Revoke & Remove
3. Force Renew
4. Show Existing Domains
5. Set Cert paths for the panel
6. Get SSL for IP Address (6-day cert, auto-renews)گزینهٔ w-ui ← 21. Cloudflare SSL certificate با یک توکن API کلودفلر، از راه چالش DNS سرتیفیکیت wildcard میگیرد.
سرتیفیکیتها در /etc/wui/certs/<name>/ با نامهای fullchain.pem و privkey.pem نگه داشته میشوند و حساب خودِ پنل میتواند آنها را بخواند.
سرویس سابسکریپشن روی پورت جداگانه
در تنظیمات ← سابسکریپشن میتوانید سرویس سابسکریپشن را روی لیسنر جداگانهای با سرتیفیکیت خودش بگذارید. در این حالت لینکی که به مشتری داده میشود همان پورت و scheme را دارد، پس https://your.host:2096/subscribe/TOKEN همانطور کار میکند که مشتری انتظار دارد.
پشت پروکسی خودتان
هنگام نصب بدون سرتیفیکیت را انتخاب کنید، یا --no-tls --local-only را بدهید. بعد TLS را در nginx یا Caddy تمام کنید و درخواستها را به http://127.0.0.1:PORT/ بفرستید. آدرس پروکسی را هم در تنظیمات ← پیکربندی ← CIDRهای پراکسی مورد اعتماد وارد کنید تا پنل آدرس مشتریها را از X-Forwarded-For بخواند.
