چک‌نت.

گواهی SSL: نامعتبر یا نزدیک انقضا

چرا مرورگر به گواهی اعتماد نمی‌کند و چطور تمدید را خودکار کنید.

بررسی با چک‌نت: گواهی SSL

گواهی SSL چیست؟

گواهی SSL (که درستش گواهی TLS است) کارت شناسایی سایت شماست. وقتی کسی سایت را با HTTPS باز می‌کند، سرور این گواهی را نشان می‌دهد و مرورگر بررسی می‌کند که سه چیز درست باشد: گواهی را مرجعی صادر کرده که مرورگر به آن اعتماد دارد، نام سایت در فهرست نام‌های گواهی هست، و تاریخ گواهی نگذشته است.

چرا مهم است؟

اگر یکی از این سه بررسی شکست بخورد، مرورگر به جای سایت یک صفحهٔ هشدار تمام‌صفحه نشان می‌دهد و بیشتر بازدیدکننده‌ها همان‌جا برمی‌گردند. برنامه‌ها و سرویس‌هایی هم که به سایت یا API شما وصل می‌شوند، معمولاً اتصال را کاملاً قطع می‌کنند.

چهار مشکل رایج

  • گواهی منقضی شده: تمدید انجام نشده است. گواهی تازه بگیرید و تمدید را خودکار کنید (قدم‌های پایین).
  • نام اشتباه: نام سایت در فهرست نام‌های گواهی نیست؛ مثلاً گواهی برای example.com است ولی سایت با www.example.com باز می‌شود. گواهی‌ای بگیرید که همهٔ نام‌ها را پوشش دهد.
  • گواهی خودامضا یا نامعتبر: گواهی را مرجعی صادر نکرده که مرورگرها به آن اعتماد دارند. آن را با گواهی یک مرجع عمومی مثل Let’s Encrypt عوض کنید.
  • زنجیرهٔ ناقص: سرور فقط گواهی خود سایت را می‌فرستد و گواهی میانی را نه. بعضی مرورگرها کمبود را جبران می‌کنند ولی بسیاری از برنامه‌ها خطا می‌دهند. در تنظیمات سرور فایل زنجیرهٔ کامل را بگذارید (در certbot نام آن fullchain.pem است).

تمدید را خودکار کنید

گواهی‌ها عمر کوتاهی دارند و کوتاه‌تر هم می‌شوند: گواهی‌های Let’s Encrypt نود روز اعتبار دارند، و طبق تصمیم انجمن مرجع‌ها و مرورگرها بیشترین عمر مجاز همهٔ گواهی‌های عمومی از مارس ۲۰۲۶ دویست روز است و تا سال ۲۰۲۹ به چهل‌وهفت روز می‌رسد. تمدید دستی دیگر عملی نیست.

  1. ببینید گواهی را چه کسی می‌گیرد. اگر سایت پشت یک شبکهٔ توزیع محتوا یا روی هاستی است که HTTPS را خودش مدیریت می‌کند، معمولاً تمدید خودکار است و فقط کافی است آن را در پنل روشن نگه دارید.
  2. اگر سرور را خودتان اداره می‌کنید، یک برنامهٔ ACME نصب کنید؛ رایج‌ترینش certbot است که گواهی رایگان Let’s Encrypt می‌گیرد و تنظیم وب‌سرور را هم انجام می‌دهد.
  3. گواهی را برای همهٔ نام‌ها بگیرید؛ نمونهٔ دستور را پایین‌تر ببینید.
  4. مطمئن شوید تمدید خودکار زمان‌بندی شده است و آن را یک بار آزمایشی اجرا کنید.
  5. در صفحهٔ SSL چک‌نت سایت را بررسی کنید و تاریخ انقضا و نام‌ها را ببینید.
sudo certbot --nginx -d example.com -d www.example.com
sudo certbot renew --dry-run

اگر رکورد CAA دارید، مرجعی که از آن گواهی می‌گیرید باید در آن نام برده شده باشد؛ وگرنه تمدید شکست می‌خورد.

بررسی با چک‌نت

در صفحهٔ SSL چک‌نت پاسخ «معتبر است» همراه با روزهای مانده تا انقضا می‌آید و اگر کمتر از چهارده روز مانده باشد، «به‌زودی منقضی می‌شود» را می‌بینید. «معتبر نیست» یعنی مرورگرها به گواهی اعتماد نمی‌کنند، و «گواهی دریافت نشد» یعنی اتصال به سرور برقرار نشد. زیر پاسخ، صادرکننده، تاریخ انقضا و نام‌های گواهی را می‌بینید. اگر متن خود گواهی را دارید، آن را در بخش «متن گواهی (PEM) دارید؟» همین صفحه بگذارید تا محتوایش را بخوانید.