learn

فعال‌سازی HTTPS برای Nginx؛ مهاجرت از آموزش CentOS 7 و تمدید خودکار

صدور گواهی برای Nginx روی سیستم پشتیبانی‌شده، کنترل DNS و challenge و آزمون تمدید Certbot؛ بدون استفاده از certbot-auto یا خاموش‌کردن اعتبارسنجی.

HTTPS روی سیستم‌عامل منقضی، کل سرور را امن و پشتیبانی‌شده نمی‌کند. اگر Nginx شما هنوز روی CentOS 7 است، ابتدا مسیر انتقال به سیستم فعال را تعیین کنید. مراحل این راهنما برای Nginx مستقل و یک نام دامنه واقعی در کنترل شماست؛ کنترل‌پنل دارای AutoSSL باید از روش مدیریت گواهی خودش استفاده کند.

پیش‌نیاز صدور گواهی

  • رکوردهای A و در صورت وجود AAAA باید به مقصد درست برسند.
  • دامنه باید در server_name سایت و پیکربندی سالم Nginx وجود داشته باشد.
  • برای HTTP-01، دسترسی اعتبارسنجی به پورت 80 و مسیر challenge لازم است؛ wildcard معمولاً به DNS-01 نیاز دارد.
  • بکاپ پیکربندی و امکان دسترسی مدیر را پیش از تغییر فراهم کنید.

نصب Certbot با یک روش مشخص

از انتخابگر رسمی Certbot، روش مناسب سیستم خود را بگیرید. اگر روش pip را انتخاب می‌کنید، آن را در محیط مستقل نصب کنید و با نسخه snap یا بسته توزیع مخلوط نکنید. مسیر نمونه زیر برای نصب تازه است و فرض می‌کند Python و ماژول venv سازگار آماده‌اند.

sudo python3 -m venv /opt/certbot
sudo /opt/certbot/bin/pip install --upgrade pip
sudo /opt/certbot/bin/pip install certbot certbot-nginx

اگر /opt/certbot قبلاً وجود دارد، ابتدا مالکیت و روش نگهداری آن را بررسی کنید. بسته‌های قدیمی و job تمدید قبلی را بدون برنامه جایگزینی حذف نکنید. certbot-auto روش توصیه‌شده این راهنما نیست.

دریافت و نصب روی Nginx

دامنه نمونه را با دامنه واقعی تحت اختیار خود جایگزین کنید؛ شرایط مرجع صدور را هنگام درخواست بخوانید و آگاهانه بپذیرید.

sudo nginx -t
sudo /opt/certbot/bin/certbot --nginx -d demo.example.com

اگر نمی‌خواهید ابزار پیکربندی را تغییر دهد، روش certonly و نصب دستی نیاز به طرح جدا دارد. برای حل خطای challenge، DNS، IPv6، redirect و WAF را بررسی کنید؛ اعتبارسنجی TLS مرورگر را خاموش نکنید.

تمدید باید واقعاً خودکار شود

sudo /opt/certbot/bin/certbot renew --dry-run

موفقیت dry-run مهم است ولی زمان‌بندی خودکار ایجاد نمی‌کند. روش نصب را بررسی کنید: بعضی بسته‌ها timer آماده دارند، اما نصب pip به job مشخص با مسیر مطلق، ثبت خطا و reload معتبر Nginx پس از تمدید نیاز دارد. job تکراری نسازید. یک آزمون staging یا تمدید آزمایشی و کنترل hook انجام دهید و تاریخ انقضا را مستقل پایش کنید.

کنترل عمومی و مهاجرت URL

دامنه و زنجیره گواهی، HTTPS بدون هشدار و نبود mixed content را در مرورگر بررسی کنید. سپس redirect از HTTP را بدون حلقه و با حفظ مسیر و query بسنجید. فعال‌کردن زودهنگام HSTS، به‌ویژه includeSubDomains، می‌تواند دامنه‌های آماده‌نشده را از دسترس خارج کند؛ آن را فقط بعد از طراحی کامل اعمال کنید.

مطالعه مرتبط

منابع و مستندات

بازبینی محتوا و منابع: ۲۶ مهر ۱۴۰۵. دستورهای نمونه برای محیط مشخص‌شده‌اند؛ پیش از استفاده روی سرویس عملیاتی، سازگاری محیط و نسخه پشتیبان را بررسی کنید.

مطالب مرتبط

ارسال نظر

فهرست مطالب