COCKPIT-TLS(8) cockpit COCKPIT-TLS(8)

cockpit-tls - پروکسی TLS برای سرویس وب Cockpit

cockpit-tls [--help] [--port PORT] [--no-tls] [--idle-timeout SECONDS]

برنامهٔ cockpit-tls یک پروکسی HTTP خاتمه‌دهندهٔ TLS برای cockpit-ws(8) است. این برنامه مجموعه‌ای از نمونه‌های ایزوله‌شدهٔ cockpit-ws را مدیریت می‌کند: یک نمونه به ازای هر گواهی کلاینت TLS، به علاوه یک نمونه برای TLS بدون گواهی کلاینت، و یک نمونه برای HTTP رمزگذاری‌نشده. بدین ترتیب، هیچ نشستی نمی‌تواند از طریق سوءاستفاده از آسیب‌پذیری‌های امنیتی احتمالی در نشست دیگر دستکاری یا تداخل ایجاد کند.

کاربران یا مدیران سیستم معمولاً هیچ‌گاه نیازی به اجرای دستی این برنامه ندارند، چرا که به طور خودکار توسط systemd(1) از طریق فعال‌سازی سوکت (socket activation) آغاز به کار می‌کند.

برای مشخص کردن گواهی TLS که سرویس وب باید استفاده کند، کافی است فایلی با پسوند .cert را در دایرکتوری /etc/cockpit/ws-certs.d، یا در صورت تنظیم بودن در زیرشاخهٔ $XDG_CONFIG_DIRS قرار دهید (به cockpit.conf(5) مراجعه کنید). اگر چند فایل در این دایرکتوری وجود داشته باشد، پس از مرتب‌سازی، فایلی با بالاترین اولویت انتخاب می‌شود.

فایل .cert باید حداقل شامل دو بلوک PEM به سبک OpenSSL باشد: نخست یک یا چند بلوک BEGIN CERTIFICATE برای گواهی سرور و مراجع صدور گواهی میانی (intermediate CAs)، و دومین بلوک شامل BEGIN PRIVATE KEY یا موارد مشابه. کلید نباید رمزگذاری‌شده باشد.

اگر هیچ گواهی TLS موجود نباشد، یک گواهی خودامضا (self-signed) به طور خودکار با استفاده از sscg (در صورت در دسترس بودن) یا openssl ایجاد شده و در فایل 0-self-signed.cert ذخیره می‌شود.

هنگام پیوستن به یک دامنهٔ FreeIPA، یک گواهی SSL از سرور IPA درخواست شده و در 10-ipa.cert ذخیره می‌گردد.

برای بررسی اینکه cockpit-ws از کدام گواهی استفاده خواهد کرد، دستور زیر را اجرا کنید:

$ sudo /usr/libexec/cockpit-certificate-ensure --check

یا در سیستم‌های مبتنی بر دبیان:

$ sudo /usr/lib/cockpit/cockpit-certificate-ensure --check

در صورت استفاده از certmonger برای مدیریت گواهی‌ها، می‌توان از دستور زیر برای ایجاد یک جفت گواهی/کلید استفاده کرد:

CERT_FILE=/etc/cockpit/ws-certs.d/50-certmonger.crt
KEY_FILE=/etc/cockpit/ws-certs.d/50-certmonger.key
getcert request -f ${CERT_FILE} -k ${KEY_FILE} -D $(hostname --fqdn)

--help

نمایش گزینه‌های راهنما.

--port PORT

پاسخ‌گویی به درخواست‌های HTTP روی PORT به جای درگاه ۹۰۹۰. معمولاً Cockpit بر حسب تقاضا توسط فعال‌سازی سوکت systemd راه‌اندازی می‌شود و این گزینه اثری ندارد. برای تغییر پورت، دستورالعمل ListenStream را در فایل cockpit.socket به روش معمول systemd به‌روزرسانی کنید.

--no-tls

عدم استفاده از TLS. گواهی‌ها خوانده نمی‌شوند و اتصالات https رد خواهند شد. در این حالت cockpit-tls تنها یک نمونهٔ cockpit-ws را مدیریت می‌کند و بنابراین عملکرد متفاوتی نسبت به اجرای مستقیم cockpit-ws --no-tls نخواهد داشت. از این گزینه فقط برای اشکال‌زدایی یا آزمایش استفاده کنید.

--idle-timeout SECONDS

اگر بزرگتر از ۰ باشد، در صورتی که برای تعداد ثانیه‌های مشخص‌شده هیچ اتصالی برقرار نشود (یعنی سرور بیکار باشد)، برنامه خاتمه می‌یابد. در صورت عدم تعیین، مقدار پیش‌فرض ۹۰ ثانیه است.

برنامهٔ cockpit-tls انتظار دارد متغیر محیطی RUNTIME_DIRECTORY روی یک دایرکتوری خالی (ترجیحاً در /run/) تنظیم شده باشد که فقط برای کاربر سیستمی اجراکنندهٔ آن قابل دسترسی باشد. این مسیر شامل سوکت‌های یونیکس برای ارتباط با نمونه‌های cockpit-ws و در آینده، اطلاعات وضعیت مربوط به گواهی‌های کلاینت است. این متغیر معمولاً توسط واحد systemd به نام cockpit.service تنظیم می‌شود.

علاوه بر این، cockpit-tls از متغیر محیطی XDG_CONFIG_DIRS برگرفته از مشخصات دایرکتوری پایه XDG https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html برای یافتن گواهی‌های خود و فایل پیکربندی cockpit.conf(5) استفاده خواهد کرد.

لطفاً گزارش‌های باگ را به سیستم ردیابی باگ توزیع یا به ردیاب باگ بالادست https://github.com/cockpit-project/cockpit/issues/new ارسال کنید.

نرم‌افزار Cockpit توسط مشارکت‌کنندگان https://github.com/cockpit-project/cockpit بسیاری نوشته شده است.

cockpit-ws(8) , cockpit.conf(5) , systemd(1)

2026-08-27 cockpit