رفع خطای SEC_ERROR_REVOKED_CERTIFICATE در Firefox؛ علت و راهحل
گاهی هنگام باز کردن یک سایت در مرورگر Mozilla Firefox با صفحه «Secure Connection Failed» مواجه میشوید و در بخش جزئیات، خطای زیر نمایش داده میشود:
SEC_ERROR_REVOKED_CERTIFICATE
نکته گیجکننده اینجاست که ممکن است همان سایت در Google Chrome یا Microsoft Edge بدون هیچ خطایی باز شود؛ اما Firefox اجازه ورود به آن را ندهد.
این اتفاق معمولاً به Cache، DNS یا سرعت اینترنت ارتباطی ندارد. خطای SEC_ERROR_REVOKED_CERTIFICATE به گواهی امنیتی SSL/TLS سایت و نحوه بررسی وضعیت آن توسط Firefox مربوط میشود.
در این آموزش مایرایانه بررسی میکنیم این خطا دقیقاً چه معنایی دارد، چرا ممکن است فقط در Firefox دیده شود، OCSP و CRLite چه نقشی دارند و چگونه میتوان منشأ مشکل را پیدا کرد.
هشدار امنیتی: روشی که در ادامه برای غیرفعال کردن موقت OCSP و CRLite توضیح میدهیم، یک روش عیبیابی است و نباید بهعنوان تنظیم دائمی Firefox استفاده شود؛ بهخصوص برای سایتهای بانکی، مالی و سرویسهای حساس.
خطای SEC_ERROR_REVOKED_CERTIFICATE چیست؟
سایتهایی که از HTTPS استفاده میکنند، هنگام برقراری ارتباط یک Certificate یا گواهی دیجیتال به مرورگر ارائه میدهند.
این گواهی به مرورگر کمک میکند بررسی کند که:
- دامنه واقعاً متعلق به همان سایتی است که قصد باز کردن آن را دارید؛
- ارتباط شما با سایت رمزگذاری شده است؛
- گواهی توسط یک مرجع مورد اعتماد یا Certificate Authority صادر شده است؛
- Certificate هنوز معتبر است.
اما فقط تاریخ انقضای Certificate مهم نیست.
ممکن است یک Certificate هنوز چند ماه تا پایان اعتبارش زمان داشته باشد، ولی صادرکننده آن را زودتر از موعد باطل یا Revoke کرده باشد.
در این شرایط Firefox میتواند اتصال را متوقف کرده و خطای زیر را نمایش دهد:
SEC_ERROR_REVOKED_CERTIFICATE
به زبان ساده Firefox میگوید:
گواهیای که این سایت به من ارائه کرده، طبق اطلاعاتی که در اختیار دارم دیگر نباید مورد اعتماد قرار گیرد.
Certificate Revocation یا ابطال گواهی چیست؟
SSL Certificate ممکن است قبل از پایان تاریخ اعتبار خود باطل شود.
دلایل مختلفی برای این اتفاق وجود دارد؛ از جمله:
- احتمال افشای Private Key سایت
- صدور اشتباه Certificate
- جایگزین شدن گواهی با Certificate جدید
- تغییر زیرساخت سرور
- باقی ماندن Certificate قدیمی روی یکی از سرورها
- مشکل در Load Balancer یا Reverse Proxy
- تغییر CDN
- خطا در Certificate Chain
- تصمیم مرجع صادرکننده برای لغو اعتبار گواهی
بنابراین مشاهده SEC_ERROR_REVOKED_CERTIFICATE الزاماً به معنی هک شدن سایت نیست؛ اما در عین حال هشداری هم نیست که بهتر باشد بدون بررسی آن را نادیده گرفت.
چرا سایت در Chrome باز میشود ولی Firefox خطا میدهد؟
این سؤال احتمالاً مهمترین بخش ماجراست.
در برخی موارد یک سایت:
در Chrome باز میشود
در Edge باز میشود
ولی Firefox نمایش میدهد:
SEC_ERROR_REVOKED_CERTIFICATE
این موضوع لزوماً به معنی اشتباه کردن Firefox نیست.
مرورگرهای مختلف الزاماً از روش کاملاً یکسانی برای بررسی Certificate Revocation استفاده نمیکنند.
در یک نمونه ثبتشده در Mozilla Support نیز سایتی در Edge بدون خطا باز میشد اما Firefox به دلیل revoked بودن Certificate اتصال را مسدود میکرد. توصیه ارائهشده در آن مورد، گزارش مشکل به مدیر سایت بود.
Firefox علاوه بر روشهای سنتی Revocation Check، از فناوری دیگری به نام CRLite نیز استفاده میکند.
OCSP چیست و چه کاری انجام میدهد؟
OCSP مخفف عبارت:
Online Certificate Status Protocol
است.
یکی از وظایف آن بررسی وضعیت Certificate است.
به زبان ساده، مرورگر میتواند بررسی کند:
آیا این Certificate هنوز معتبر است یا صادرکننده آن را باطل کرده است؟
Firefox تنظیم مرتبطی با این قابلیت دارد:
security.OCSP.enabled
در نسخههای فعلی Firefox مقدار پیشفرض این گزینه 1 است. این مقدار در سورس فعلی Firefox نیز بهعنوان مقدار پیشفرض تعریف شده است.
CRLite چیست؟
Mozilla برای بهبود سیستم بررسی Certificateهای باطلشده فناوری دیگری به نام CRLite توسعه داده است.
یکی از مشکلات روشهای قدیمی Revocation Check این بود که مرورگر باید برای بررسی وضعیت گواهیها به سرویسهای آنلاین مراجعه کند؛ موضوعی که میتوانست روی سرعت، حریم خصوصی و قابلیت اطمینان اثر بگذارد.
CRLite اطلاعات مربوط به Certificateهای Revoked را بهشکل بسیار فشرده در اختیار Firefox قرار میدهد تا مرورگر بتواند بخش بزرگی از این بررسی را بهصورت محلی انجام دهد.
Mozilla اعلام کرد که از Firefox 142 استفاده عملیاتی از CRLite را آغاز میکند.
تنظیم اصلی مرتبط با این سیستم در about:config عبارت است از:
security.pki.crlite_mode
در سورس فعلی Firefox مقدار پیشفرض این گزینه 2 تعریف شده است.
چرا خاموش کردن OCSP بهتنهایی ممکن است کافی نباشد؟
در نسخههای جدید Firefox این نکته بسیار مهم است.
فرض کنیم هنگام باز کردن سایتی این خطا را دریافت کردهاید:
SEC_ERROR_REVOKED_CERTIFICATE
برای تست، OCSP را غیرفعال میکنید:
security.OCSP.enabled = 0
اما سایت همچنان باز نمیشود.
چرا؟
چون Firefox فقط به OCSP متکی نیست و ممکن است CRLite همچنان Certificate را Revoked تشخیص دهد.
در یک تست واقعی، با قرار دادن فقط:
security.OCSP.enabled = 0
مشکل باقی ماند.
اما پس از غیرفعال کردن موقت CRLite نیز:
security.pki.crlite_mode = 0
سایت باز شد.
این تست نشان میدهد که در چنین شرایطی سیستم Certificate Revocation در Firefox عامل مسدود شدن اتصال بوده است.
روش تشخیص مشکل در Firefox
اگر با SEC_ERROR_REVOKED_CERTIFICATE مواجه شدهاید، قبل از دستکاری تنظیمات Firefox مراحل زیر را انجام دهید.
۱. سایت را در Chrome یا Edge بررسی کنید
ابتدا همان آدرس را در یک مرورگر دیگر باز کنید.
اگر در تمام مرورگرها مشکل وجود دارد، احتمال مشکل سمت سایت بسیار زیاد است.
اگر فقط Firefox خطا میدهد، بررسیهای بعدی را انجام دهید.
۲. Firefox را بهروز کنید
از منوی Firefox وارد:
Help → About Firefox
شوید و بررسی کنید آخرین نسخه مرورگر نصب شده باشد.
۳. تاریخ و ساعت ویندوز را بررسی کنید
تاریخ یا ساعت اشتباه سیستم میتواند باعث انواع خطاهای Certificate شود.
بهتر است گزینه تنظیم خودکار زمان در Windows فعال باشد.
۴. VPN و Proxy را آزمایش کنید
بعضی VPNها، Proxyها، آنتیویروسها و نرمافزارهای امنیتی ترافیک HTTPS را بررسی یا اصطلاحاً Intercept میکنند.
برای آزمایش میتوانید:
- VPN را موقتاً خاموش کنید؛
- با اینترنت دیگری سایت را باز کنید؛
- یا برعکس، یک شبکه متفاوت را آزمایش کنید.
اگر خطا فقط روی یک شبکه خاص دیده میشود، مسیر اتصال نیز باید بررسی شود.
تست OCSP در Firefox
اگر بررسیهای قبلی نتیجهای نداشت، میتوان برای تشخیص منشأ خطا OCSP را موقتاً غیرفعال کرد.
در نوار آدرس Firefox وارد کنید:
about:config
پیام هشدار Firefox را تأیید کنید.
سپس جستجو کنید:
security.OCSP.enabled
مقدار معمول:
1
است.
برای تست آن را روی:
0
قرار دهید.
حالا دوباره سایت را باز کنید.
اگر سایت باز شد چه؟
این موضوع نشانه قدرتمندی است که Revocation Check مربوط به OCSP در ایجاد خطا نقش داشته است.
اما هنوز نباید این تنظیم را دائماً روی صفر نگه دارید.
اگر سایت همچنان باز نشد چه؟
در Firefoxهای جدید ممکن است CRLite همچنان اتصال را مسدود کند.
در این حالت مرحله بعد را صرفاً برای آزمایش انجام دهید.
تست CRLite در Firefox
دوباره در:
about:config
عبارت زیر را جستجو کنید:
security.pki.crlite_mode
در نسخههای فعلی Firefox معمولاً مقدار آن:
2
است.
برای تست موقت مقدار را روی:
0
قرار دهید:
security.pki.crlite_mode = 0
اکنون سایت را دوباره آزمایش کنید.
اگر در این وضعیت سایت باز شد، میتوان گفت سیستم بررسی Revocation در Firefox دلیل اصلی مسدود شدن اتصال بوده است.
در تست ما وضعیت زیر باعث باز شدن سایت شد:
security.OCSP.enabled = 0
security.pki.crlite_mode = 0
اما این پایان کار نیست.
چرا نباید OCSP و CRLite را همیشه غیرفعال کنیم؟
چون این تغییر فقط روی همان سایتی که مشکل دارد اعمال نمیشود.
Firefox بررسی Certificate Revocation را برای سایتهای مختلف انجام میدهد. وقتی این قابلیتها را غیرفعال میکنید، بخشی از سیستم امنیتی مرورگر را برای کل وبگردی خود تضعیف میکنید.
به همین دلیل این تنظیم:
security.OCSP.enabled = 0
و این تنظیم:
security.pki.crlite_mode = 0
نباید بهعنوان «راهحل دائمی خطای Firefox» در نظر گرفته شوند.
هدف از آنها در این آموزش فقط این است که بفهمیم:
آیا Certificate Revocation Check عامل خطاست یا خیر؟
بهخصوص برای:
- اینترنت بانک
- درگاه پرداخت
- ایمیل
- حسابهای کاری
- پنل مدیریت سایت
- سرویسهای حاوی اطلاعات شخصی
بهتر است بررسی Revocation فعال باقی بماند.
چگونه تنظیمات را به حالت اولیه برگردانیم؟
پس از پایان تست وارد:
about:config
شوید.
گزینه:
security.OCSP.enabled
و:
security.pki.crlite_mode
را پیدا کنید.
بهترین کار این است که از گزینه Reset کنار تنظیم استفاده کنید تا Firefox مقدار پیشفرض خودش را دوباره اعمال کند.
در زمان نگارش این مطلب مقادیر پیشفرض Firefox دسکتاپ عبارتاند از:
security.OCSP.enabled = 1
security.pki.crlite_mode = 2
اما استفاده از Reset بهتر از وارد کردن دستی مقدار است، زیرا Mozilla ممکن است تنظیمات پیشفرض را در نسخههای آینده تغییر دهد.
آیا میتوان برای یک سایت خاص Exception تعریف کرد؟
برای بعضی خطاهای SSL، Firefox گزینهای برای قبول ریسک یا اضافه کردن Exception ارائه میدهد.
اما SEC_ERROR_REVOKED_CERTIFICATE یک هشدار امنیتی جدیتر است و ممکن است Firefox اصلاً اجازه عبور معمولی از آن را ندهد.
در نتیجه خاموش کردن سراسری Revocation Check صرفاً برای باز کردن یک سایت، راهحل مناسبی نیست.
اگر سایت برای شما ضروری است و در مرورگر دیگری بدون هشدار باز میشود، استفاده موقت از مرورگر دیگر معمولاً انتخاب منطقیتری نسبت به غیرفعال نگه داشتن کنترلهای امنیتی کل Firefox است.
اگر مدیر سایت هستیم چطور مشکل را حل کنیم؟
اگر کاربران سایت شما SEC_ERROR_REVOKED_CERTIFICATE دریافت میکنند، از آنها نخواهید تنظیمات امنیتی مرورگرشان را خاموش کنند.
راهحل اصلی در سمت سرور است.
موارد زیر باید بررسی شوند:
- SSL Certificate نصبشده
- Serial Number گواهی
- وضعیت Revocation
- Intermediate Certificateها
- Certificate Chain
- OCSP
- OCSP Stapling
- CDN
- Reverse Proxy
- Load Balancer
- چند سرور بودن سرویس
- Certificate نصبشده روی هر Endpoint
یکی از سناریوهای قابلتصور این است که Certificate جدید روی سرور اصلی نصب شده باشد اما یکی از Nodeها، Proxyها یا Load Balancerها همچنان Certificate قدیمی را ارائه دهد.
در Mozilla Support نیز نمونهای ثبت شده که دلیل خطای مشابه، ارائه Certificate قدیمی توسط بعضی سرورها بوده است.
آیا SEC_
ERROR_
REVOKED_CERTIFICATE باگ Firefox است؟
لزوماً خیر.
وظیفه مرورگر این است که قبل از ایجاد ارتباط امن، اعتبار Certificate را بررسی کند.
اگر اطلاعات موجود نشان دهد Certificate باطل شده است، جلوگیری از اتصال رفتار امنیتی قابل انتظار است.
اینکه Chrome یا Edge همان لحظه سایت را باز میکنند نیز بهتنهایی اثبات نمیکند Firefox اشتباه کرده است؛ زیرا روشهای بررسی Certificate Revocation در مرورگرها یکسان نیست.
بنابراین بهتر است بهجای خاموش کردن دائمی کنترل امنیتی، علت اصلی در Certificate و زیرساخت سایت بررسی شود.
جمعبندی
اگر Firefox هنگام باز کردن یک سایت خطای:
SEC_ERROR_REVOKED_CERTIFICATE
نشان میدهد، یعنی مرورگر گواهی ارائهشده را Revoked یا باطلشده تشخیص داده است.
اگر سایت در Chrome یا Edge باز میشود، هنوز نمیتوان نتیجه گرفت مشکل از Firefox است.
برای عیبیابی میتوان بهصورت موقت بررسی کرد که آیا خاموش کردن:
security.OCSP.enabled
و سپس:
security.pki.crlite_mode
باعث باز شدن سایت میشود یا خیر.
اگر با:
security.OCSP.enabled = 0
و:
security.pki.crlite_mode = 0
سایت باز شد، مشخص میشود Certificate Revocation Check عامل مسدود شدن ارتباط بوده است.
اما این تنظیمات را دائمی نگه ندارید.
پس از آزمایش، آنها را Reset کنید و در صورت امکان مشکل Certificate را از سمت سایت برطرف کنید.
خطای SEC_ERROR_REVOKED_CERTIFICATE چیست؟
این خطا یعنی Firefox گواهی SSL/TLS ارائهشده توسط سایت را باطلشده تشخیص داده و به همین دلیل اتصال HTTPS را متوقف کرده است.
چرا سایت در Chrome باز میشود اما در Firefox نه؟
روشهای بررسی Certificate Revocation در مرورگرها کاملاً یکسان نیست. Firefox در نسخههای جدید از سیستمهایی مانند OCSP و CRLite برای این بررسی استفاده میکند.
security.OCSP.enabled چیست؟
این تنظیم نحوه استفاده Firefox از OCSP برای بررسی وضعیت گواهیهای دیجیتال را کنترل میکند. مقدار پیشفرض آن در نسخههای فعلی Firefox دسکتاپ 1 است.
security.pki.crlite_mode چیست؟
این تنظیم به نحوه استفاده Firefox از CRLite مربوط میشود. در نسخههای فعلی Firefox مقدار پیشفرض آن 2 است.
آیا میتوان security.OCSP.enabled و security.pki.crlite_mode را روی صفر گذاشت؟
برای عیبیابی کوتاهمدت میتوان این کار را آزمایش کرد، اما نگه داشتن دائمی آنها روی صفر توصیه نمیشود؛ زیرا بخشی از بررسی امنیتی Certificateها را غیرفعال میکند.
بهترین راهحل SEC_ERROR_REVOKED_CERTIFICATE چیست؟
راهحل اصلی بررسی و اصلاح Certificate در سمت سایت است. برای کاربر، ابتدا باید مرورگر، شبکه، VPN و وضعیت سایت در مرورگرهای دیگر بررسی شود و از غیرفعال کردن دائمی کنترلهای امنیتی خودداری شود.




