بررسی اعتبار گواهی SSL سایت از داخل مرورگر یکی از مهارت‌های پایه‌ای مدیران سرور و توسعه‌دهندگان است که مستقیماً بر تجربه‌ی کاربری، امنیت و سئو اثر می‌گذارد. گواهی SSL، هویت سرور را تأیید و ارتباط را رمزنگاری می‌کند. اما این گواهی، ممکن است به دلایل متعدد نامعتبر، منقضی یا ناقص باشد: تاریخ انقضا گذشته، Chain ناقص است، دامنه با SAN همخوانی ندارد یا CA در Trust Store مرورگر ناشناس است. مرورگرها ابزارهایی برای بررسی این موارد فراهم می‌کنند که در این راهنما با دقت بررسی می‌شود.

SSL و Trust Chain

گواهی SSL یک فایل دیجیتال است که شامل کلید عمومی سرور، نام دامنه، تاریخ اعتبار، صادرکننده و امضای دیجیتال CA است. مرورگر با بررسی زنجیره‌ی اعتماد، اعتبار گواهی را تأیید می‌کند:

  • Root CA: در Trust Store مرورگر و سیستم‌عامل.
  • Intermediate CA: امضاشده توسط Root.
  • Server Certificate: امضاشده توسط Intermediate.

اگر یکی از این لایه‌ها ناقص یا نامعتبر باشد، مرورگر هشدار می‌دهد.

Certificate Viewer در مرورگرها

هر مرورگر، ابزاری برای نمایش جزئیات گواهی دارد که به آن Certificate Viewer می‌گویند.

بررسی در Chrome و Edge

  1. روی قفل کنار URL کلیک کنید.
  2. گزینه‌ی Connection is secure را انتخاب کنید.
  3. روی Certificate is valid کلیک کنید.
  4. پنجره‌ی Certificate Viewer باز می‌شود.

در این پنجره، سه تب وجود دارد:

  • General: صادرکننده، صادرشده برای، تاریخ اعتبار.
  • Details: جزئیات فنی (Serial Number، Signature Algorithm، SAN).
  • Certification Path: زنجیره‌ی اعتماد.
# بررسی از طریق DevTools
1. F12 → Security Tab
2. View Certificate
3. بررسی Trust Chain

بررسی در Firefox

  1. روی قفل کنار URL کلیک کنید.
  2. گزینه‌ی Connection secure را انتخاب کنید.
  3. روی More Information کلیک کنید.
  4. در پنجره‌ی Page Info، تب Security را انتخاب کنید.
  5. روی View Certificate کلیک کنید.

Firefox از Trust Store مستقل استفاده می‌کند و ممکن است گواهی‌ای را نامعتبر بداند که Chrome معتبر می‌داند.

بررسی در Safari

  1. روی قفل کنار URL کلیک کنید.
  2. گزینه‌ی Show Certificate را انتخاب کنید.
  3. جزئیات گواهی نمایش داده می‌شود.

بررسی Trust Chain

Trust Chain در تب Certification Path نمایش داده می‌شود. نکات کلیدی:

  • تمام گواهی‌های زنجیره باید معتبر باشند.
  • هیچ گواهی نباید منقضی شده باشد.
  • زنجیره باید به Root CA معتبر برسد.
  • هیچ لایه‌ای نباید Missing باشد.

یکی از مشکلات رایج، Chain ناقص است که در آن Intermediate Certificate نصب نشده است. این مشکل در Chrome اغلب نادیده گرفته می‌شود اما در Firefox و برخی ابزارها خطا می‌دهد.

# بررسی Chain با OpenSSL
openssl s_client -connect example.com:443 -showcerts

# بررسی Chain کامل
openssl s_client -connect example.com:443 -servername example.com /dev/null | openssl x509 -noout -text

OCSP و Revocation

OCSP (Online Certificate Status Protocol) پروتکلی است که وضعیت ابطال گواهی را بررسی می‌کند:

  • Good: گواهی معتبر است.
  • Revoked: گواهی ابطال شده است.
  • Unknown: وضعیت نامشخص.

OCSP Stapling باعث می‌شود سرور، پاسخ OCSP را همراه Handshake ارسال کند و سرعت را افزایش دهد.

# بررسی OCSP
openssl s_client -connect example.com:443 -status -servername example.com /dev/null | grep -A 5 "OCSP Response"

Certificate Transparency

Certificate Transparency (CT) لاگ‌های عمومی است که تمام گواهی‌های صادرشده را ثبت می‌کند. با بررسی CT Logs، می‌توان:

  • گواهی‌های جعلی صادرشده برای دامنه را شناسایی کرد.
  • از صدور گواهی ناخواسته مطلع شد.
  • بررسی کرد که گواهی در CT Logs ثبت شده است.
# بررسی CT Logs
https://crt.sh/?q=example.com

نشانه‌های خطا و ریشه‌یابی

خطا ریشه راه‌حل
NET::ERR_CERT_DATE_INVALID گواهی منقضی تمدید گواهی
NET::ERR_CERT_COMMON_NAME_INVALID دامنه همخوانی ندارد صدور گواهی جدید با SAN صحیح
NET::ERR_CERT_AUTHORITY_INVALID CA ناشناس نصب Chain کامل
NET::ERR_CERT_REVOKED گواهی ابطال شده صدور گواهی جدید
NET::ERR_SSL_PROTOCOL_ERROR پیکربندی نامناسب بررسی TLS Configuration
NET::ERR_CERT_WEAK_SIGNATURE_ALGORITHM الگوریتم ضعیف صدور با SHA-256
Mixed Content منابع HTTP در HTTPS به‌روزرسانی منابع

اعتبارسنجی نهایی

ابزارهای آنلاین برای اعتبارسنجی جامع:

  • SSL Labs: ssllabs.com/ssltest
  • Qualys SSL Test: بررسی پیکربندی
  • Hardenize: بررسی جامع
  • ImmuniWeb SSL: بررسی امنیتی
  • Geekflare SSL Test: بررسی سریع
# بررسی با curl
curl -vI https://example.com 2>&1 | grep -A 10 "SSL"

# بررسی با testssl.sh
./testssl.sh example.com

پرسش‌های پرتکرار

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

Firefox از Trust Store مستقل استفاده می‌کند. ممکن است Intermediate CA در Chrome نصب باشد اما در Firefox نباشد.

چگونه Chain ناقص را رفع کنیم؟

با نصب Intermediate Certificate در سرور. در Nginx با ssl_certificate که شامل Chain کامل است.

آیا OCSP Stapling ضروری است؟

برای سرعت و حریم خصوصی، بله. توصیه می‌شود.

چگونه گواهی جعلی را شناسایی کنیم؟

با بررسی Certificate Transparency Logs در crt.sh.

آیا مرورگر گواهی را به‌صورت خودکار به‌روزرسانی می‌کند؟

خیر، گواهی باید توسط سرور به‌روزرسانی شود.

چرا پس از نصب SSL، سایت امن نمایش داده نمی‌شود؟

معمولاً به‌دلیل Mixed Content یا Chain ناقص. برای مطالعه‌ی بیشتر، پست چرا سایت بعد از نصب SSL امن نمایش داده نمی‌شود مفید است.

ملاحظات پیشرفته

در سطح معماری، بررسی گواهی SSL نیازمند استراتژی جامع است:

۱. Certificate Monitoring: پایش خودکار تاریخ انقضا.

۲. Certificate Transparency Monitoring: پایش CT Logs.

۳. OCSP Stapling: فعال‌سازی در Nginx/Apache.

۴. HSTS: اجبار HTTPS.

۵. TLS 1.3: تنها نسخه‌ی مدرن.

۶. Certificate Pinning: در اپلیکیشن‌های موبایل.

۷. Automated Renewal: با Certbot و ACME.

۸. Multi-Domain و Wildcard: مدیریت گواهی در مقیاس.

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

نتیجه

بررسی اعتبار گواهی SSL از داخل مرورگر، یک مهارت پایه‌ای است که با Certificate Viewer، بررسی Trust Chain و OCSP Stapling انجام می‌شود. شناخت نشانه‌های خطا و ریشه‌یابی آن‌ها، زمان رفع مشکل را کاهش می‌دهد. ابزارهای آنلاین مانند SSL Labs، بررسی جامع‌تری ارائه می‌دهند.

💡 اگر تجربه‌ای در بررسی گواهی SSL از مرورگر داشته‌اید، برای ما جالب است بدانیم کدام مرحله بیشترین چالش را ایجاد کرد: Trust Chain، OCSP یا Mixed Content. تجربه‌ی خودتان را در دیدگاه‌ها بنویسید.