learn

نصب SSL در Apache روی Ubuntu 22.04 با Let’s Encrypt

راه‌اندازی HTTPS برای Apache مستقل با انتخاب درست دامنه، بررسی پیکربندی و پایش تمدید.

نصب SSL در Apache با Let’s Encrypt امکان ارائهٔ سایت از طریق HTTPS را فراهم می‌کند. این آموزش برای Ubuntu 22.04 و Apache مستقلی است که اختیار تنظیمات آن را دارید. در سرور دارای کنترل‌پنل، گواهی را ابتدا از ابزار همان پنل مدیریت کنید.

پیش‌نیاز نصب SSL در Apache

یک نام دامنهٔ واقعی، دسترسی sudo و وب‌سایت HTTP فعال لازم است. رکورد A و در صورت وجود AAAA باید به سرور درست برسند. اگر www قرار است در گواهی باشد، آن نام هم باید پاسخ معتبر داشته باشد؛ فقط داشتن نام اصلی کافی نیست.

برای اعتبارسنجی HTTP-01 دسترسی پورت ۸۰ از اینترنت ضروری است. استفاده از HTTPS نیز به پورت ۴۴۳ نیاز دارد. دسترسی لازم را در فایروال محلی و شبکه بررسی کنید و هنگام اصلاح قواعد، دسترسی مدیریتی SSH را حفظ کنید.

VirtualHost مربوط به دامنه را پیدا کنید

sudo apache2ctl -S
sudo apache2ctl configtest

فرمان اول نگاشت میزبان‌های مجازی را نشان می‌دهد. ServerName باید نام اصلی سایت باشد و ServerAlias فقط نام‌های اضافی واقعی را پوشش دهد. خطای تنظیمات را پیش از دریافت گواهی برطرف کنید؛ آزمون پیکربندی Apache باید موفق شود.

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

sudo systemctl reload apache2

انتخاب روش نصب Certbot

ابتدا ببینید Certbot از قبل نصب شده است یا نه. اگر بستهٔ موجود گواهی‌ها و تمدید را مدیریت می‌کند، نصب دوم یا حذف فوری بستهٔ قبلی می‌تواند برنامهٔ نگهداری را مختل کند. یک روش نصب مشخص را نگه دارید و مسیر اجرای آن را بدانید.

command -v certbot
certbot --version
systemctl list-timers --all

برای نصب تازه، در صورت آماده بودن snapd، دستور رسمی Certbot برای Apache چنین است:

sudo snap install --classic certbot

فرمان‌های بعدی عمداً مسیر کامل نسخهٔ snap را دارند. در نصب غیر snap باید مسیر همان نسخهٔ موجود را به کار ببرید؛ دو نسخه را بدون برنامهٔ مهاجرت مخلوط نکنید.

صدور گواهی و تنظیم HTTPS

example.com را با دامنهٔ خود جایگزین کنید. درخواست را محدود به نام‌هایی نگه دارید که DNS و سایت فعال آن‌ها بررسی شده‌اند:

sudo /snap/bin/certbot --apache -d example.com

افزونهٔ Apache می‌تواند گواهی را دریافت و پیکربندی وب‌سرور را تنظیم کند. اطلاعات تماس، شرایط سرویس و گزینه‌های تعاملی را با دقت بخوانید. اگر www آماده است، می‌توانید -d www.example.com را نیز به همان درخواست اضافه کنید.

بعد از اجرای موفق، سایت را با HTTPS باز کنید. نام‌های گواهی و تاریخ اعتبار باید درست باشند. دوباره آزمون پیکربندی Apache را اجرا کنید و مطمئن شوید دامنهٔ دیگری به VirtualHost اشتباه هدایت نشده است.

کنترل تغییر مسیر و فایل‌های صفحه

نسخهٔ HTTP را هم امتحان کنید و تغییر مسیر مورد نیاز را بررسی کنید. همهٔ فایل‌های CSS، JavaScript و تصویر باید بدون هشدار محتوای مخلوط بارگذاری شوند. مشکل برنامه یا پیوند داخلی را صرفاً با تکرار صدور گواهی حل نمی‌کنید.

پشت CDN، ارتباط کاربر با لبه و ارتباط لبه با مبدأ را جدا ارزیابی کنید. همچنین HTTPS امنیت کامل برنامه یا رتبهٔ مشخصی در آزمون امنیتی را تضمین نمی‌کند؛ وظیفهٔ اصلی آن حفاظت از انتقال داده است.

آزمون تمدید و پایش گواهی

sudo /snap/bin/certbot renew --dry-run
systemctl list-timers --all

آزمون اول باید بدون خطا پایان یابد. در فهرست زمان‌بندها، مورد مربوط به روش نصب Certbot و اجرای بعدی آن را بررسی کنید. اگر زمان‌بند درست موجود است، کرون دیگری برای همان کار نسازید. انقضا و سیاست تمدید را از دادهٔ واقعی بخوانید، نه یک فاصلهٔ ثابت در آموزش قدیمی.

از ژوئن ۲۰۲۵ ایمیل یادآوری انقضا از سوی Let’s Encrypt ارسال نمی‌شود. خطای تمدید و زمان باقی‌ماندهٔ گواهی را با ابزار پایش مستقل دنبال کنید.

علت‌های رایج خطای صدور

رکورد اشتباه IPv6، بسته بودن پورت ۸۰، نام اشتباه VirtualHost یا پاسخ نامعتبر مسیر چالش را بررسی کنید. طبق توضیح انواع چالش، wildcard به DNS-01 نیاز دارد. تغییر دستی TXT بدون طراحی تمدید، به معنی تمدید خودکار آینده نیست.

مطالعهٔ مرتبط

بازبینی فنی: ۱۴ آبان ۱۴۰۵. تاریخ انتشار اولیه و نشانی قبلی حفظ شده‌اند.

مطالب مرتبط

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

فهرست مطالب