آموزش ساخت مخزن Third‑Party با امضای GPG

این مقاله نحوه ساخت یک مخزن Third‑Party شامل فایل‌های digest از نوع sha512 و امضای GPG را توضیح می‌دهد. همچنین مراحل تولید digest، ایجاد کلید GPG، امضای فایل‌ها، افزودن کلید به keystore، و تنظیم فایل rpm.versions برای استفاده از مخزن را بررسی می‌کند.

GPG SignaturesPackage Repositorysha512 Digest

~3 دقیقه مطالعه · آخرین به‌روزرسانی ۲ اسفند ۱۴۰۴

1. مقدمه


کاربرانی که قصد ساخت مخزن Third‑Party دارند باید فایل‌های sha512 digest، امضاهای GPG و فایل‌های پکیج لازم را ایجاد کنند. سیستم به این فایل‌ها برای تأیید صحت و امنیت پکیج‌ها نیاز دارد.


بیشتر وابستگی‌های نرم‌افزاری cPanel به‌صورت آرشیوهای پکیج ارائه می‌شوند و از طریق یک مخزن HTTP عمومی دانلود می‌گردند. مقدار url_templates در فایل rpm.versions محل ذخیره پکیج‌ها را مشخص می‌کند.


هر دایرکتوری پکیج شامل یک فایل sha512 است که چک‌سام تمام پکیج‌ها را در خود دارد. سیستم همچنین یک امضای GPG برای تأیید صحت digest ایجاد می‌کند.


2. ایجاد فایل‌های sha512 Digest


در هر دایرکتوری که پکیج‌ها قرار دارند باید یک فایل sha512 ایجاد کنید.


نمونه دایرکتوری:


root@httpupdate1:/home/www/thirdparty_pkg/11.92/centos/7/x86_64# ls -l
total 6876
-rw-r--r-- 1 tux tux 6191460 Aug 12 18:57 cpanel-angularjs-1.4.3-1.cp1154.noarch.rpm
-rw-r--r-- 1 tux tux 843872 Sep 11 17:33 cpanel-angularjs-1.4.4-1.cp1154.noarch.rpm

ایجاد فایل digest:


sha512sum *.rpm > sha512

نمونه خروجی digest:


01fe3fefade91693d2e03cd2f2a2cde7613e54586e994f3477658eefbe24c6ba0347129286789ad9fc8f1aa3f32859896aed16d39055031808eea057557691d2 cpanel-angularjs-1.4.3-1.cp1154.noarch.rpm
f91a02c9fd3ef6551809ebb23e726cbe460fa8c334f592f53c773cbccc1b0cede9d139386b7e60b91bf25cd640ce9ecfd948c077bac12d2d8e069ca08a257da2 cpanel-angularjs-1.4.4-1.cp1154.noarch.rpm

نکته: در سرورهای Ubuntu به‌جای .rpm از .deb استفاده کنید.


3. ایجاد کلید GPG


پس از ساخت digest باید یک جفت کلید GPG ایجاد کنید تا فایل را امضا کنید. توصیه می‌شود کلید را روی سیستمی غیرعمومی ایجاد کنید تا امنیت کلید خصوصی حفظ شود.


برای اطلاعات بیشتر به مستندات GnuPG مراجعه کنید.


4. امضای فایل sha512


برای جلوگیری از حملات rollback یا جایگزینی فایل، cPanel از یک notation خاص در امضای GPG استفاده می‌کند که شامل مسیر HTTP فایل است.


مثال:


اگر فایل digest در مسیر زیر باشد:


http://example.com/pkg_repo/11.92/centos/7/x86_64/sha512


notation باید به شکل زیر باشد:


/pkg_repo/11.92/centos/7/x86_64/sha512


دستور امضا:


gpg --output sha512.asc -u "[email protected]" --armor \
--sig-notation "[email protected]=/thirdparty_pkg/11.92/centos/7/x86_64/sha512" \
--detach-sign sha512

5. افزودن کلید به Keystore


برای اینکه سرورهای cPanel & WHM بتوانند امضاها را تأیید کنند، باید کلید عمومی را روی هر سرور اضافه کنید.


استخراج کلید عمومی:


gpg --output example_pkg_repo.pub.asc --armor --export

کلید را در یک مسیر HTTPS عمومی ذخیره کنید، مانند:


https://example.com/pkg_repo/example_pkg_repo.pub.asc


افزودن کلید به سیستم:


/scripts/updatesigningkey --vendor thirdparty --category release \
--url https://example.com/pkg_repo/example_pkg_repo.pub.asc

6. افزودن مخزن به فایل local.versions


برای استفاده از مخزن، فایل /var/cpanel/rpm.versions.d/local.versions را به‌روزرسانی کنید.


هر پکیج شامل موارد زیر است:


  • url_templates — مسیر دانلود پکیج
  • location_keys — مقادیر vendor و category

7. مخازن بدون امضای GPG


هشدار: ایجاد مخزن بدون امضای GPG توصیه نمی‌شود، زیرا امکان تأیید صحت فایل‌ها وجود ندارد.


برای غیرفعال کردن تأیید امضا:


---
file_format:
  version: 2
location_keys:
  thirdparty_rpm:
    disabled: 1
rpm_locations:
  cpanel-angularjs: thirdparty_rpm
url_templates:
  thirdparty_rpm: 'http://example.com/pkg_repo/11.92/centos/[% rpm_dist_ver %]/[% rpm_arch %]/[% package %]-[% package_version %]-[% package_revision %].noarch.rpm'

نتیجه‌گیری


ساخت مخزن Third‑Party با digestهای sha512 و امضاهای GPG امنیت و صحت پکیج‌ها را تضمین می‌کند. با تولید digest، امضای آن، افزودن کلید به keystore و تنظیم فایل rpm.versions می‌توانید مخزن اختصاصی خود را به‌صورت ایمن در cPanel & WHM استفاده کنید.


نوشته و پژوهش‌شده توسط دکتر شاهین صیامی

مقالات مرتبط

راهنمای کامل بازیابی اکانت cPanel و انتقال حساب‌ها و تنظیمات برای مدیران سیستم تازه‌کار

این مقاله یک راهنمای جامع برای مدیران سیستم تازه‌کار است که می‌خواهند اکانت‌های cPanel را بازیابی کنند، حساب‌ها و تنظیمات را بین سرورها منتقل کنند، و از ابزارهای تشخیصی برای بررسی مشکلات انتقال و بازیابی استفاده کنند. این راهنما شامل نحوه استفاده از WHM، نحوه آپلود بکاپ‌ها، روش‌های انتقال، و فعال‌سازی لاگ‌های پیشرفته است.

ادامه

How to Move All cPanel Accounts from One Server to Another

This guide explains how to migrate all cPanel accounts, service configurations, SSL certificates, and the main server IP address from an old source server to a new target server. It covers installation requirements, configuration transfers, account migration, IP reassignment, DNS adjustments, and SSL restoration.

ادامه

آموزش کامل مهاجرت یک وب‌سایت وردپرس از macOS به سرور cPanel & WHM

این مقاله نحوه انتقال یک وب‌سایت وردپرس که روی macOS میزبانی شده است را به یک سرور cPanel & WHM توضیح می‌دهد. شامل خروجی گرفتن از دیتابیس، آپلود فایل‌ها، ایجاد دیتابیس جدید، تنظیم wp-config.php، تغییر URL سایت، و رفع لینک‌ها و تصاویر خراب است.

ادامه

آموزش کامل انتقال دستی یک اکانت بین سرورها در cPanel & WHM

این مقاله نحوه انتقال دستی یک اکانت بین دو سرور را زمانی که حجم اکانت برای ابزارهای انتقال WHM بسیار بزرگ است توضیح می‌دهد. شامل ایجاد دایرکتوری موقت، فشرده‌سازی public_html و لاگ‌ها، انتقال امن با scp، و بازیابی فایل‌ها در سرور جدید است.

ادامه

آموزش کامل مهاجرت دستی داده‌های Horde به Roundcube در cPanel & WHM

این مقاله نحوه مهاجرت دستی تقویم‌ها و مخاطبین Horde به Roundcube را در نسخه‌های 108 تا 118 cPanel & WHM توضیح می‌دهد. شامل مراحل خروجی گرفتن از Horde، انتقال فایل‌ها به مسیرهای صحیح، و وارد کردن داده‌ها در Roundcube با استفاده از افزونه‌های داخلی یا ابزارهای واردسازی است.

ادامه

آموزش کامل مهاجرت دستی اکانت‌ها از کنترل‌پنل‌های غیرپشتیبانی‌شده به cPanel & WHM

این مقاله نحوه مهاجرت دستی اکانت‌ها از کنترل‌پنل‌های غیرپشتیبانی‌شده به cPanel & WHM را توضیح می‌دهد. شامل اقدامات قبل از مهاجرت، نصب سرور جدید، انتقال فایل‌ها و دایرکتوری‌ها، بازیابی دیتابیس‌ها، انتقال SSL، و اقدامات پس از مهاجرت است.

ادامه