ایجاد فایل SSL برای سایت ها

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

برای وب‌سایت‌ها روی HAProxy با استفاده از گواهی‌های برتینا

۱. مقدمه و مفاهیم پایهمفاهیم مهم:۲. دریافت فایل‌های گواهی از برتینا  مرحله ۱ — ارسال CSR و دریافت Certificate + DV Chain ۳. ساخت فایل ترکیبی PEM  مرحله ۲ — ترکیب Private Key + Certificate + DV Chain ۴. قرار دادن فایل PEM روی سرور HAProxy  مرحله ۳ — کپی فایل در مسیر گواهی‌ها ۵. به‌روزرسانی تنظیمات HAProxy  مرحله ۴ — ویرایش فایل haproxy.cfg ۶. بررسی صحت تنظیمات (مهم)  مرحله ۵ — تست کانفیگ با دستور haproxy -c ۷. اعمال و بارگذاری مجدد تغییرات  مرحله ۶ — اجرای اسکریپت آپدیت ۸. تأیید نهایی گواهی در مرورگر  مرحله ۷ — بررسی تاریخ انقضا در Certificate Viewer ۹. عیب‌یابی رایجمشکل: گواهی در مرورگر به‌روز نشده استمشکل: خطای error در دستور haproxy -cمشکل: WARNING در مورد http-request rule۱۰. خلاصه سریع مراحل (چک‌لیست)۱.  CSR و Private Key آماده است و CSR به برتینا ارسال شده.۲.  فایل‌های Certificate و DV Chain از برتینا دانلود شده‌اند.۳.  فایل PEM با ترتیب Private Key ← Certificate ← DV Chain ساخته شده.۴.  فایل PEM در مسیر /etc/ssl/certs ذخیره و مجوز ۶۰۰ تنظیم شده.۵.  مسیر crt در haproxy.cfg به فایل جدید اشاره می‌کند.۶.  دستور haproxy -c -f /etc/haproxy/haproxy.cfg بدون error اجرا شده.۷.  اسکریپت آپدیت (/root/update.sh) اجرا شده است.۸.  در مرورگر تاریخ انقضای گواهی جدید تأیید شده است.


۱. مقدمه و مفاهیم پایه

در این راهنما مراحل کامل دریافت، ساخت و نصب گواهی SSL برای وب‌سایت‌ها روی سرور HAProxy توضیح داده شده است. گواهی‌ها از شرکت برتینا (Bertina) تهیه می‌شوند و پس از دریافت، باید به فرمت PEM مناسب HAProxy تبدیل و در تنظیمات لودبالانسر قرار گیرند.

مفاهیم مهم:

•  CSR (Certificate Signing Request) : درخواست امضای گواهی که شامل اطلاعات دامنه و کلید عمومی است.

•  Private Key : کلید خصوصی که همراه CSR ساخته می‌شود و باید محرمانه نگه داشته شود.

•  Certificate : فایل گواهی اصلی که برتینا صادر می‌کند.

•  DV Chain (زنجیره میانی) : زنجیره گواهی‌های میانی که برای اعتبارسنجی کامل لازم است.

•  فایل PEM : فایلی که کلید خصوصی + گواهی + زنجیره را در خود دارد و HAProxy از آن استفاده می‌کند.

نکته امنیتی: کلید خصوصی (Private Key) را هرگز در اختیار کسی قرار ندهید و فقط روی سرور نگهداری کنید. دسترسی فایل PEM باید محدود به root باشد (مجوز ۶۰۰).

۲. دریافت فایل‌های گواهی از برتینا

  مرحله ۱ — ارسال CSR و دریافت Certificate + DV Chain 

ابتدا یک فایل CSR برای دامنه مورد نظر ایجاد کرده‌اید (معمولاً همراه با Private Key). این CSR را به پنل برتینا ارسال می‌کنید. پس از تأیید و صدور گواهی، برتینا دو فایل در اختیار شما قرار می‌دهد:

•  فایل Certificate (گواهی اصلی دامنه)

•  فایل DV Chain (زنجیره گواهی‌های میانی)

این دو فایل را دانلود کنید. همچنین Private Key مربوط به همان CSR را که قبلاً ذخیره کرده‌اید آماده داشته باشید.

۳. ساخت فایل ترکیبی PEM

  مرحله ۲ — ترکیب Private Key + Certificate + DV Chain 

یک فایل متنی جدید باز کنید (مثلاً با Notepad) و محتوای سه فایل را به ترتیب زیر داخل آن قرار دهید:

ترتیب صحیح محتویات فایل PEM:

۱.  ابتدا Private Key (کلید خصوصی)

۲.  سپس فایل Certificate (گواهی اصلی)

۳.  در انتها فایل DV Chain (زنجیره میانی)

نمونه ساختار فایل:

-----BEGIN PRIVATE KEY-----

... محتوای کلید خصوصی ...

-----END PRIVATE KEY-----

-----BEGIN CERTIFICATE-----

... محتوای گواهی اصلی (Certificate) ...

-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----

... محتوای زنجیره میانی (DV Chain) ...

-----END CERTIFICATE-----

فایل را با پسوند .pem ذخیره کنید. نام پیشنهادی: نام‌دامنه-تاریخ.pem  مثلاً  superdrain.ir-2026-10-19.pem

نکته: بین بلوک‌های BEGIN و END نباید خط خالی اضافی یا کاراکتر نامعتبر وجود داشته باشد.

۴. قرار دادن فایل PEM روی سرور HAProxy

  مرحله ۳ — کپی فایل در مسیر گواهی‌ها 

به سرور HAProxy متصل شوید و به مسیر نگهداری گواهی‌ها بروید:

Clipboard

sudo su
cd /etc/ssl/certs/


لیست فایل‌های موجود را ببینید:

Clipboard

ll


فایل جدید را با نام مناسب ایجاد کنید:

Clipboard

nano superdrain.ir-2026-10-19.pem


محتوای فایل PEM را کامل کپی و پیست کنید، سپس ذخیره کنید:

•  کلید Ctrl + X را بزنید

•  سپس کلید Y را بزنید (تأیید ذخیره)

•  در نهایت کلید Enter را بزنید

۵. به‌روزرسانی تنظیمات HAProxy

  مرحله ۴ — ویرایش فایل haproxy.cfg 

فایل تنظیمات را باز کنید:

Clipboard

nano /etc/haproxy/haproxy.cfg

در فایل، خط مربوط به مسیر SSL سایت را پیدا کنید (کلمه کلیدی crt) و مسیر قدیمی را با مسیر فایل PEM جدید جایگزین کنید.

مثال قبل از تغییر:

bind *:443 ssl crt /etc/ssl/certs/superdrain.ir-old.pem

مثال بعد از تغییر:

bind *:443 ssl crt /etc/ssl/certs/superdrain.ir-2026-10-19.pem

فایل را ذخیره کنید (Ctrl+X → Y → Enter).

۶. بررسی صحت تنظیمات (مهم)

  مرحله ۵ — تست کانفیگ با دستور haproxy -c 

قبل از اعمال تغییرات، صحت فایل تنظیمات را بررسی کنید:

Clipboard

haproxy -c -f /etc/haproxy/haproxy.cfg


خروجی نباید شامل error یا alert باشد. هشدارهای WARNING مربوط به ترتیب قوانین http-request معمولاً مشکلی ایجاد نمی‌کنند.

نمونه خروجی موفق:

خروجی مطلوب: وجود چند WARNING طبیعی است. تا زمانی که error یا alert نباشد، می‌توانید ادامه دهید.

۷. اعمال و بارگذاری مجدد تغییرات

  مرحله ۶ — اجرای اسکریپت آپدیت 

پس از اطمینان از صحت کانفیگ، تغییرات را اعمال کنید:

Clipboard

/root/update.sh


(یا دستور معادل در محیط شما مثل systemctl reload haproxy)

۸. تأیید نهایی گواهی در مرورگر

  مرحله ۷ — بررسی تاریخ انقضا در Certificate Viewer 

سایت را در مرورگر باز کنید و مراحل زیر را انجام دهید:

۱.  روی آیکون قفل کنار آدرس سایت کلیک کنید.

۲.  گزینه Connection is secure را انتخاب کنید.

۳.  روی Certificate is valid کلیک کنید تا Certificate Viewer باز شود.

۴.  در بخش Validity Period تاریخ Expires On را بررسی کنید.

نمونه صفحه Security در مرورگر:

نمونه Certificate Viewer (تاریخ انقضا باید جدید باشد):

مثال واقعی: برای دامنه superdrain.ir گواهی صادرشده توسط Certum DV TLS G2 R39 CA از ۱۷ اکتبر ۲۰۲۶ تا ۱۳ آوریل ۲۰۲۷ معتبر است.

۹. عیب‌یابی رایج

مشکل: گواهی در مرورگر به‌روز نشده است

•  مسیر فایل PEM در haproxy.cfg اشتباه باشد.

•  سرویس HAProxy ریلود نشده باشد.

•  محتویات فایل PEM ناقص یا ترتیب بلوک‌ها اشتباه باشد.

•  کش مرورگر را پاک کنید یا از حالت ناشناس تست کنید.

مشکل: خطای error در دستور haproxy -c

•  فایل PEM دارای کاراکتر اضافی یا بلوک ناقص است.

•  مسیر فایل وجود ندارد یا مجوز خواندن ندارد.

•  کلید خصوصی با گواهی مطابقت ندارد.

مشکل: WARNING در مورد http-request rule

این هشدارها معمولاً مانع کارکرد SSL نمی‌شوند. تا زمانی که error یا alert نباشد، ادامه دهید.

۱۰. خلاصه سریع مراحل (چک‌لیست)

۱.  CSR و Private Key آماده است و CSR به برتینا ارسال شده.

۲.  فایل‌های Certificate و DV Chain از برتینا دانلود شده‌اند.

۳.  فایل PEM با ترتیب Private Key ← Certificate ← DV Chain ساخته شده.

۴.  فایل PEM در مسیر /etc/ssl/certs ذخیره و مجوز ۶۰۰ تنظیم شده.

۵.  مسیر crt در haproxy.cfg به فایل جدید اشاره می‌کند.

۶.  دستور haproxy -c -f /etc/haproxy/haproxy.cfg بدون error اجرا شده.

۷.  اسکریپت آپدیت (/root/update.sh) اجرا شده است.

۸.  در مرورگر تاریخ انقضای گواهی جدید تأیید شده است.

موفق باشید