نصب SSL رایگان در cPanel، دایرکت ادمین و سرور مجازی

برای نصب SSL رایگان روی سایت، در cPanel کافی است AutoSSL را از بخش SSL/TLS Status اجرا کنید و در DirectAdmin گواهی خودکار Let’s Encrypt را از بخش SSL Certificates بگیرید. روی سرور مجازی لینوکس، ابزار Certbot گواهی Let’s Encrypt را صادر، روی Nginx یا Apache نصب و خودکار تمدید می‌کند. شرط همه این روش‌ها یکی است: دامنه باید به همان سروری اشاره کند که گواهی رویش نصب می‌شود.

گواهی‌های رایگان کوتاه‌مدت‌اند. اعتبار گواهی Let’s Encrypt در حال حاضر ۹۰ روز است و این مرجع اعلام کرده در سال‌های آینده آن را کوتاه‌تر می‌کند. پس نصب دستی و فراموش کردن کافی نیست و تمدید باید خودکار باشد.

SSL رایگان چه فرقی با SSL پولی دارد؟

رمزنگاری گواهی رایگان و پولی یکسان است و مرورگر برای هر دو همان قفل را نشان می‌دهد. گواهی‌های رایگان فقط از نوع DV هستند، یعنی مرجع صدور فقط کنترل شما روی دامنه را بررسی می‌کند. گواهی‌های OV و EV که هویت سازمان را هم تأیید می‌کنند، و خدماتی مثل پشتیبانی یا بیمه صادرکننده، فقط در گواهی‌های پولی وجود دارند. برای بیشتر سایت‌ها، از جمله فروشگاه‌ها، گواهی DV رایگان کافی است.

پیش از نصب SSL رایگان

  • رکورد A دامنه و www به IP همین سرور یا هاست اشاره کند. اگر سایت را تازه منتقل کرده‌اید، صبر کنید تا DNS جدید دیده شود.
  • پورت ۸۰ روی فایروال باز باشد. روش معمول اعتبارسنجی Let’s Encrypt از همین پورت انجام می‌شود، حتی اگر سایت بعداً فقط روی HTTPS کار کند.
  • اگر رکورد CAA دارید، letsencrypt.org در آن آمده باشد. کاربرد این رکورد را در انواع رکورد DNS توضیح داده‌ایم.

نصب SSL رایگان در cPanel

در cPanel گواهی رایگان با قابلیت AutoSSL صادر می‌شود. مرجع صدور را مدیر سرور انتخاب می‌کند و معمولاً Let’s Encrypt یا Sectigo است.

  1. وارد cPanel شوید و بخش SSL/TLS Status را باز کنید.
  2. دامنه‌ها و زیردامنه‌هایی را که گواهی می‌خواهند انتخاب کنید.
  3. روی Run AutoSSL کلیک کنید و چند دقیقه صبر کنید.
  4. اگر کنار دامنه‌ای خطا نمایش داده شد، متن آن را بخوانید. بیشتر خطاها به اشاره نکردن DNS به همین سرور یا در دسترس نبودن سایت از پورت ۸۰ برمی‌گردند.
  5. در بخش Domains گزینه Force HTTPS Redirect را برای دامنه روشن کنید تا بازدیدکننده‌ها به نسخه امن هدایت شوند.

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

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

  1. در DirectAdmin به Account Manager و بعد SSL Certificates بروید.
  2. گزینه دریافت گواهی خودکار از Let’s Encrypt را انتخاب کنید. در نسخه‌های جدید این گزینه با عنوان ACME Provider نمایش داده می‌شود و ممکن است ZeroSSL هم در فهرست باشد.
  3. نام‌هایی را که گواهی باید پوشش دهد تیک بزنید، مثل دامنه اصلی و www، و گواهی را صادر کنید.
  4. در Domain Setup گزینه Force SSL with https redirect را فعال کنید.

دایرکت ادمین هم گواهی را خودکار تمدید می‌کند. تفاوت ظاهر منوها بین نسخه‌ها و قالب‌های مختلف زیاد است، ولی نام بخش SSL Certificates معمولاً ثابت می‌ماند.

نصب SSL رایگان روی سرور مجازی با Certbot

روی Ubuntu با وب‌سرور Nginx، Certbot و افزونه Nginx آن را نصب کنید و گواهی را برای دامنه و www بگیرید:

sudo apt update
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com

Certbot اعتبارسنجی را انجام می‌دهد، گواهی را در کانفیگ Nginx همان دامنه قرار می‌دهد و می‌پرسد HTTP به HTTPS ریدایرکت شود یا نه. برای Apache به‌جای این افزونه python3-certbot-apache را نصب کنید و گزینه --apache را به کار ببرید. مستندات خود Certbot نصب از طریق snap را پیشنهاد می‌کند؛ بسته apt اوبونتو هم کار می‌کند، ولی ممکن است نسخه قدیمی‌تری داشته باشد.

اگر فایروال UFW فعال است، پورت‌های ۸۰ و ۴۴۳ را باز کنید:

sudo ufw allow 'Nginx Full'

بسته Certbot یک تایمر systemd برای تمدید خودکار نصب می‌کند. وجود تایمر و درست کار کردن تمدید را این‌طور بررسی کنید:

systemctl list-timers | grep certbot
sudo certbot renew --dry-run

اگر dry-run خطا نداد، تمدید خودکار آماده است. اگر سایت پشت Cloudflare است و پراکسی آن روشن است، اعتبارسنجی HTTP معمولاً باز هم کار می‌کند، ولی ریدایرکت‌های سخت‌گیرانه یا قوانین فایروال Cloudflare ممکن است جلوی آن را بگیرند.

گواهی Wildcard رایگان

گواهی Wildcard مثل *.example.com همه زیردامنه‌های یک سطح را پوشش می‌دهد و فقط با اعتبارسنجی DNS صادر می‌شود. در این روش Certbot یک رکورد TXT موقت در DNS دامنه می‌سازد. حالت دستی این کار تمدید خودکار ندارد، پس بهتر است از افزونه DNS سرویس خودتان استفاده کنید. نمونه برای Cloudflare:

sudo apt install python3-certbot-dns-cloudflare
sudo certbot certonly --dns-cloudflare \
  --dns-cloudflare-credentials /root/.secrets/cloudflare.ini \
  -d example.com -d '*.example.com'

فایل cloudflare.ini فقط یک خط دارد که توکن API با دسترسی ویرایش DNS همان دامنه را نگه می‌دارد. دسترسی فایل را با chmod 600 محدود کنید، چون هر کسی این توکن را داشته باشد می‌تواند رکوردهای DNS را تغییر دهد.

SSL رایگان روی ویندوز سرور و IIS

برای IIS ابزار رایگان win-acme کار Certbot را انجام می‌دهد. برنامه را اجرا می‌کنید، سایت IIS را از فهرست انتخاب می‌کنید و گواهی صادر و به سایت متصل می‌شود. win-acme برای تمدید خودکار یک Scheduled Task در ویندوز می‌سازد که باید فعال بماند.

کارهای بعد از نصب SSL

بعد از فعال شدن HTTPS، همه آدرس‌های HTTP باید با ریدایرکت 301 به HTTPS بروند. در وردپرس آدرس سایت را در تنظیمات عمومی با https بنویسید. اگر بعضی تصاویر یا فایل‌ها هنوز با http بارگذاری شوند، مرورگر خطای Mixed Content نشان می‌دهد و ممکن است قفل را کامل نشان ندهد. آدرس‌های قدیمی دیتابیس را با WP-CLI عوض کنید:

wp search-replace 'http://example.com' 'https://example.com' --skip-columns=guid

فعال کردن HSTS را به بعد از اطمینان از کار کردن کامل HTTPS بگذارید، چون مرورگرها بعد از دیدن آن تا مدت تعیین‌شده دیگر نسخه HTTP را باز نمی‌کنند. بعد از نصب، تاریخ انقضا، زنجیره گواهی و مطابقت نام را با ابزار بررسی SSL سایت چک کنید. اگر سایت را تازه به هاست جدید برده‌اید، فهرست کامل کارهای بعد از انتقال در انتقال سایت وردپرس به هاست جدید آمده است.

سوالات متداول

SSL رایگان برای سایت فروشگاهی کافی است؟

بله. رمزنگاری گواهی رایگان با گواهی پولی فرقی ندارد و درگاه‌های پرداخت و مرورگرها آن را معتبر می‌دانند. گواهی OV یا EV فقط وقتی لازم است که بخواهید هویت سازمان هم در گواهی ثبت شده باشد.

چرا گواهی Let’s Encrypt تمدید نشد؟

رایج‌ترین دلیل‌ها این‌ها هستند: پورت ۸۰ بسته شده، DNS دامنه به سرور دیگری منتقل شده، یک ریدایرکت یا قانون فایروال درخواست اعتبارسنجی را برگردانده، یا رکورد CAA اجازه صدور به Let’s Encrypt را نمی‌دهد. خروجی certbot renew --dry-run علت دقیق را نشان می‌دهد.

گواهی رایگان چه مدت اعتبار دارد؟

گواهی Let’s Encrypt در حال حاضر ۹۰ روز. ابزارهای تمدید معمولاً حدود ۳۰ روز مانده به انقضا گواهی را تمدید می‌کنند. اگر گواهی شما کمتر از دو هفته اعتبار دارد و تمدید نشده، تمدید خودکار احتمالاً خطا می‌دهد.

یک گواهی می‌تواند چند دامنه را پوشش دهد؟

بله. با تکرار گزینه -d در Certbot می‌توانید چند نام را در یک گواهی قرار دهید، مثل دامنه اصلی، www و زیردامنه‌های دیگر. برای پوشش همه زیردامنه‌ها از گواهی Wildcard استفاده کنید.

پاسخی بگذارید

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