راهنمای کامل نصب و تمدید گواهی SSL
برای وبسایتها روی HAProxy با استفاده از گواهیهای برتینا
۱. مقدمه و مفاهیم پایه
در این راهنما مراحل کامل دریافت، ساخت و نصب گواهی 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 متصل شوید و به مسیر نگهداری گواهیها بروید:
sudo su
cd /etc/ssl/certs/
لیست فایلهای موجود را ببینید:
ll
فایل جدید را با نام مناسب ایجاد کنید:
nano superdrain.ir-2026-10-19.pem
محتوای فایل PEM را کامل کپی و پیست کنید، سپس ذخیره کنید:
• کلید Ctrl + X را بزنید
• سپس کلید Y را بزنید (تأیید ذخیره)
• در نهایت کلید Enter را بزنید
۵. بهروزرسانی تنظیمات HAProxy
مرحله ۴ — ویرایش فایل haproxy.cfg
فایل تنظیمات را باز کنید:
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
قبل از اعمال تغییرات، صحت فایل تنظیمات را بررسی کنید:
haproxy -c -f /etc/haproxy/haproxy.cfg
خروجی نباید شامل error یا alert باشد. هشدارهای WARNING مربوط به ترتیب قوانین http-request معمولاً مشکلی ایجاد نمیکنند.
نمونه خروجی موفق:

خروجی مطلوب: وجود چند WARNING طبیعی است. تا زمانی که error یا alert نباشد، میتوانید ادامه دهید.
۷. اعمال و بارگذاری مجدد تغییرات
مرحله ۶ — اجرای اسکریپت آپدیت
پس از اطمینان از صحت کانفیگ، تغییرات را اعمال کنید:
/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) اجرا شده است.
۸. در مرورگر تاریخ انقضای گواهی جدید تأیید شده است.
موفق باشید