سطح: متوسط | مناسب برای: مدیران سایت، کاربران هاست، مدیران سرور، توسعهدهندگان وب، کاربران SSL و افرادی که بعد از تغییر گواهی یا تنظیمات HTTPS با خطای HSTS مواجه شدهاند
گاهی هنگام باز کردن یک سایت، مرورگر اجازه ادامه نمیدهد و خطاهایی مثل Your connection is not private، NET::ERR_CERT_AUTHORITY_INVALID، NET::ERR_CERT_COMMON_NAME_INVALID یا پیامهایی شبیه «این سایت از HSTS استفاده میکند» نمایش میدهد. در چنین شرایطی، حتی اگر روی گزینه Advanced کلیک کنید، ممکن است امکان عبور از هشدار وجود نداشته باشد.
یکی از دلایل این رفتار، فعال بودن یا ذخیره شدن سیاست امنیتی HSTS در مرورگر است. HSTS برای افزایش امنیت طراحی شده، اما اگر گواهی SSL سایت اشتباه، منقضی، self-signed یا برای دامنه نادرست صادر شده باشد، مرورگر بهدلیل همین سیاست امنیتی اجازه باز کردن نسخه ناامن یا عبور ساده از خطا را نمیدهد.
در این آموزش، توضیح میدهیم HSTS چیست، چرا باعث قفل شدن دسترسی به سایت میشود، چه زمانی باید تنظیمات HSTS را پاک کرد، چطور HSTS را در مرورگرهای Chrome، Microsoft Edge و Firefox حذف کنیم و چه نکاتی را باید رعایت کنیم تا مشکل دوباره تکرار نشود.
اگر میخواهید ابتدا با SSL و HTTPS آشنا شوید، مقاله SSL چیست؟ را بخوانید. همچنین اگر مشکل شما به اتصال دامنه، رکوردها یا تغییر هاست مربوط است، مقاله DNS چیست؟ میتواند کمک کند علت را بهتر پیدا کنید.
فهرست مطالب
- HSTS چیست؟
- چرا HSTS باعث خطای مرورگر میشود؟
- چه زمانی باید HSTS را پاک کنیم؟
- قبل از غیرفعال کردن HSTS چه چیزهایی را بررسی کنیم؟
- پاک کردن HSTS در Google Chrome
- پاک کردن HSTS در Microsoft Edge
- پاک کردن HSTS در Firefox با Forget About This Site
- پاک کردن HSTS در Firefox از فایل SiteSecurityServiceState.txt
- مشکل HSTS در localhost و محیط توسعه
- اگر مدیر سایت هستید، مشکل را از سمت سرور اصلاح کنید
- خطاهای رایج مرتبط با HSTS و SSL
- هشدار امنیتی: چه زمانی نباید HSTS را دور بزنیم؟
- چکلیست سریع رفع مشکل HSTS
- سوالات متداول
HSTS چیست؟
HSTS مخفف HTTP Strict Transport Security است. این مکانیزم امنیتی به مرورگر اعلام میکند که یک سایت باید فقط از طریق HTTPS باز شود و مرورگر نباید اجازه اتصال ناامن HTTP را بدهد.
وقتی یک سایت هدر HSTS ارسال میکند، مرورگر برای مدت مشخصی این سیاست را ذخیره میکند. بعد از آن، حتی اگر کاربر آدرس سایت را با http:// وارد کند، مرورگر بهصورت خودکار تلاش میکند سایت را با https:// باز کند.
نمونه هدر HSTS:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preloadاین هدر به مرورگر میگوید برای مدت مشخصشده در max-age فقط نسخه HTTPS سایت را بپذیرد. گزینه includeSubDomains این سیاست را برای سابدامینها هم اعمال میکند و گزینه preload میتواند سایت را وارد لیست preload مرورگرها کند.
HSTS در اصل برای جلوگیری از حملاتی مثل SSL Stripping طراحی شده است؛ یعنی حملاتی که تلاش میکنند کاربر را از اتصال امن HTTPS به اتصال ناامن HTTP منتقل کنند. بنابراین HSTS یک قابلیت امنیتی مفید است، اما اگر SSL سایت مشکل داشته باشد، میتواند باعث شود کاربر راهی برای عبور از خطا نداشته باشد.
چرا HSTS باعث خطای مرورگر میشود؟
وقتی مرورگر برای یک دامنه سیاست HSTS ذخیره کرده باشد، دیگر اجازه نمیدهد کاربر نسخه HTTP آن سایت را باز کند یا از بعضی خطاهای SSL عبور کند. بنابراین اگر گواهی SSL سایت مشکل داشته باشد، مرورگر دسترسی را کاملاً مسدود میکند.
دلایل رایج بروز خطای HSTS:
- گواهی SSL سایت منقضی شده است.
- گواهی برای دامنه اشتباه صادر شده است.
- گواهی self-signed است و مرورگر به آن اعتماد ندارد.
- زنجیره گواهی یا CA Bundle ناقص نصب شده است.
- سایت از HTTP به HTTPS منتقل شده اما تنظیمات SSL کامل نیست.
- دامنه به سرور جدید منتقل شده ولی هنوز گواهی درست نصب نشده است.
- HSTS برای سابدامینها فعال شده اما همه سابدامینها SSL معتبر ندارند.
- در محیط لوکال یا تست، از دامنهای استفاده میشود که قبلاً HSTS داشته است.
برای درک بهتر مشکلات SSL و HTTPS، مقاله SSL چیست؟ راهنمای کامل گواهی امنیتی و مقاله کدهای خطا جهت هشدار امنیتی SSL در فایرفاکس را هم ببینید.
چه زمانی باید HSTS را پاک کنیم؟
پاک کردن HSTS معمولاً راهحل موقت برای مرورگر شماست، نه راهحل اصلی مشکل سایت. این کار زمانی مفید است که مشکل از کش مرورگر یا تستهای لوکال باشد.
مواردی که پاک کردن HSTS میتواند کمک کند:
- گواهی SSL سایت را تازه اصلاح کردهاید اما مرورگر هنوز خطا نشان میدهد.
- در حال تست یک دامنه لوکال یا داخلی هستید.
- سایت از HTTPS به ساختار جدید منتقل شده و مرورگر هنوز سیاست قبلی را نگه داشته است.
- قبلاً روی یک دامنه تستی HSTS فعال بوده و حالا همان دامنه به محیط دیگری اشاره میکند.
- فقط روی یک مرورگر یا یک سیستم مشکل دارید و از دستگاههای دیگر سایت درست باز میشود.
اما اگر سایت عمومی واقعاً SSL نامعتبر دارد، پاک کردن HSTS مشکل اصلی را حل نمیکند. مدیر سایت باید گواهی، DNS، سرور و هدرهای امنیتی را اصلاح کند.
قبل از غیرفعال کردن HSTS چه چیزهایی را بررسی کنیم؟
قبل از اینکه HSTS را از مرورگر پاک کنید، بهتر است چند مورد را بررسی کنید تا مطمئن شوید مشکل از سمت مرورگر است یا از سمت سرور.
- سایت را با یک مرورگر دیگر تست کنید.
- سایت را از یک دستگاه یا اینترنت دیگر بررسی کنید.
- تاریخ و ساعت سیستم خود را کنترل کنید.
- از درست بودن دامنه و سابدامین مطمئن شوید.
- گواهی SSL سایت را با ابزارهای SSL Checker بررسی کنید.
- اگر دامنه تازه منتقل شده، DNS و IP مقصد را بررسی کنید.
- اگر مدیر سایت هستید، هدر HSTS و تنظیمات SSL سرور را بررسی کنید.
اگر مشکل فقط روی یک مرورگر دیده میشود، پاک کردن HSTS یا کش مرورگر میتواند منطقی باشد. اما اگر همه کاربران با خطا مواجهاند، باید مشکل را از سمت سرور و گواهی SSL حل کنید.
پاک کردن HSTS در Google Chrome
در مرورگر Chrome میتوانید HSTS ذخیرهشده برای یک دامنه را از بخش net-internals حذف کنید. منابع مختلف همچنان روش استفاده از chrome://net-internals/#hsts و بخش Delete domain security policies را برای حذف سیاست HSTS دامنه توضیح میدهند. [oai_citation:2‡The SSL Store](https://www.thesslstore.com/blog/clear-hsts-settings-chrome-firefox/?utm_source=chatgpt.com)
- مرورگر Google Chrome را باز کنید.
- در نوار آدرس این مسیر را وارد کنید:
chrome://net-internals/#hsts- در بخش Query HSTS/PKP domain یا Query domain، نام دامنه را بدون
https://وارد کنید. - روی Query کلیک کنید تا ببینید آیا برای دامنه سیاست HSTS ذخیره شده است یا نه.
- در بخش Delete domain security policies همان دامنه را وارد کنید.
- روی Delete کلیک کنید.
- تمام تبهای مربوط به سایت را ببندید و مرورگر را ریستارت کنید.
- دوباره سایت را تست کنید.
نام دامنه را بدون پروتکل وارد کنید. مثلاً بهجای https://example.com فقط بنویسید:
example.comاگر مشکل برای سابدامین است، همان سابدامین را هم جداگانه تست و حذف کنید:
sub.example.comپاک کردن HSTS در Microsoft Edge
Microsoft Edge نسخههای جدید بر پایه Chromium ساخته شدهاند و روش حذف HSTS در آنها شبیه Chrome است. در Edge از مسیر edge://net-internals/#hsts استفاده میشود و دامنه را در بخش Delete domain security policies حذف میکنید. [oai_citation:3‡kb.teramind.co](https://kb.teramind.co/en/articles/9399979-how-to-clear-the-hsts-settings?utm_source=chatgpt.com)
- مرورگر Microsoft Edge را باز کنید.
- در نوار آدرس وارد کنید:
edge://net-internals/#hsts- در بخش Query، دامنه را بررسی کنید.
- در بخش Delete domain security policies دامنه را بدون
http://یاhttps://وارد کنید. - روی Delete کلیک کنید.
- مرورگر را ببندید و دوباره باز کنید.
اگر از Edge در محیط سازمانی استفاده میکنید، ممکن است برخی سیاستهای امنیتی از طریق Group Policy یا تنظیمات سازمانی اعمال شده باشد. در این حالت، فقط حذف HSTS از مرورگر ممکن است کافی نباشد.
پاک کردن HSTS در Firefox با Forget About This Site
در Firefox یکی از روشهای ساده برای پاک کردن دادههای HSTS یک سایت، استفاده از گزینه Forget About This Site در History است. این روش در بسیاری از راهنماها برای حذف HSTS ذخیرهشده در Firefox پیشنهاد شده است. [oai_citation:4‡kb.teramind.co](https://kb.teramind.co/en/articles/9399979-how-to-clear-the-hsts-settings?utm_source=chatgpt.com)
- Firefox را باز کنید.
- کلیدهای زیر را بزنید تا History باز شود:
Ctrl + Shift + H- نام دامنه موردنظر را در History جستجو کنید.
- روی یکی از نتایج مربوط به آن دامنه راستکلیک کنید.
- گزینه Forget About This Site را انتخاب کنید.
- Firefox را ببندید و دوباره باز کنید.
- سایت را تست کنید.
نکته: این گزینه فقط HSTS را پاک نمیکند؛ ممکن است کوکیها، کش، History و برخی دادههای مرتبط با همان سایت را هم حذف کند. بنابراین اگر در آن سایت لاگین بودهاید، احتمالاً از حساب خارج میشوید.
پاک کردن HSTS در Firefox از فایل SiteSecurityServiceState.txt
روش دیگر در Firefox، ویرایش فایل SiteSecurityServiceState.txt در پروفایل کاربر است. در این روش باید Firefox را کامل ببندید، فایل را باز کنید، خط مربوط به دامنه را حذف کنید و فایل را ذخیره کنید. منابع پشتیبانی Mozilla نیز تأکید کردهاند که Firefox باید قبل از ویرایش این فایل بسته باشد، وگرنه تغییرات اثر نمیکند. [oai_citation:5‡Mozilla Support](https://support.mozilla.org/de/questions/1265077?utm_source=chatgpt.com)
- در Firefox آدرس زیر را باز کنید:
about:support- در بخش Profile Folder یا پوشه پروفایل روی Open Folder کلیک کنید.
- Firefox را کامل ببندید.
- در پوشه پروفایل، فایل زیر را پیدا کنید:
SiteSecurityServiceState.txt- فایل را با Notepad یا Notepad++ باز کنید.
- نام دامنه موردنظر را جستجو کنید.
- خط مربوط به آن دامنه را حذف کنید.
- فایل را ذخیره کنید.
- Firefox را دوباره باز کنید و سایت را تست کنید.
اگر دامنه چند سابدامین دارد، ممکن است لازم باشد خطوط مربوط به سابدامینها را هم بررسی کنید.
مشکل HSTS در localhost و محیط توسعه
یکی از سناریوهای رایج، مشکل HSTS در محیط توسعه است؛ مثلاً وقتی برای localhost یا دامنههای لوکال مثل local.test، dev.example.local یا دامنهای که قبلاً HTTPS داشته، مرورگر اصرار میکند فقط HTTPS را باز کند.
برای مرورگرهای Chromium-based مثل Chrome و Edge، معمولاً میتوانید از همان مسیرهای زیر استفاده کنید:
chrome://net-internals/#hsts
edge://net-internals/#hstsسپس مقدارهای مربوط به localhost یا دامنه لوکال را از بخش Delete domain security policies حذف کنید.
در محیط توسعه بهتر است از دامنههای لوکال مشخص و گواهی معتبر برای توسعه استفاده کنید. اگر روی WAMP یا محیط لوکال با SSL کار میکنید، مقاله آموزش فعال کردن HTTPS و SSL روی WAMP Server هم میتواند مفید باشد.
اگر مدیر سایت هستید، مشکل را از سمت سرور اصلاح کنید
اگر شما مدیر سایت هستید و کاربران با خطای HSTS مواجه میشوند، نباید از آنها بخواهید HSTS را پاک کنند. راه درست این است که مشکل SSL و هدرهای امنیتی را از سمت سرور اصلاح کنید.
مواردی که باید بررسی کنید:
- گواهی SSL معتبر و منقضینشده باشد.
- گواهی برای دامنه و سابدامین درست صادر شده باشد.
- CA Bundle یا زنجیره گواهی کامل نصب شده باشد.
- ریدایرکت HTTP به HTTPS درست و بدون loop باشد.
- اگر
includeSubDomainsفعال است، همه سابدامینها SSL معتبر داشته باشند. - اگر سایت در preload list است، حذف آن ساده و فوری نیست.
- قبل از فعال کردن max-age طولانی، تنظیمات را با مقدار کوتاه تست کنید.
اگر هنوز در مرحله انتخاب یا نصب گواهی هستید، مقاله چگونگی انتخاب گواهینامه SSL مناسب و صفحه گواهی SSL پویاسازان را هم بررسی کنید.
خطاهای رایج مرتبط با HSTS و SSL
| خطا | معنی احتمالی | اقدام پیشنهادی |
|---|---|---|
NET::ERR_CERT_AUTHORITY_INVALID | مرورگر به صادرکننده گواهی اعتماد ندارد | بررسی CA، گواهی self-signed یا زنجیره گواهی |
NET::ERR_CERT_COMMON_NAME_INVALID | گواهی برای دامنه فعلی معتبر نیست | بررسی دامنه، www/non-www و SANهای گواهی |
NET::ERR_CERT_DATE_INVALID | گواهی منقضی شده یا تاریخ سیستم اشتباه است | تمدید SSL یا اصلاح تاریخ سیستم |
SSL_ERROR_BAD_CERT_DOMAIN | دامنه با گواهی مطابقت ندارد | صدور گواهی صحیح برای دامنه |
SEC_ERROR_UNKNOWN_ISSUER | صادرکننده گواهی شناختهشده نیست | بررسی CA Bundle و اعتماد مرورگر |
اگر این خطاها برای سایت عمومی شما رخ میدهد، مشکل را از سمت سرور برطرف کنید. پاک کردن HSTS فقط برای مرورگر همان کاربر اثر دارد و راهحل دائمی نیست.
هشدار امنیتی: چه زمانی نباید HSTS را دور بزنیم؟
HSTS برای محافظت از کاربر طراحی شده است. بنابراین همیشه نباید آن را دور بزنید. اگر با سایتی مثل بانک، پنل پرداخت، ایمیل، پنل کاربری حساس یا سرویس مهم روبهرو هستید و مرورگر خطای امنیتی نشان میدهد، بهتر است ادامه ندهید.
پاک کردن HSTS فقط در این شرایط منطقیتر است:
- شما مالک یا مدیر سایت هستید و در حال تست هستید.
- دامنه مربوط به محیط لوکال یا داخلی است.
- مطمئن هستید گواهی اصلاح شده و فقط کش مرورگر مشکل دارد.
- از منبع معتبر میدانید مشکل امنیتی واقعی وجود ندارد.
اگر کاربر عادی هستید و سایت متعلق به شما نیست، بهتر است با مدیر سایت تماس بگیرید و از وارد کردن اطلاعات حساس در سایتی که خطای SSL دارد خودداری کنید.
چکلیست سریع رفع مشکل HSTS
| مرحله | اقدام |
|---|---|
| ۱ | تاریخ و ساعت سیستم را بررسی کنید |
| ۲ | سایت را در مرورگر یا دستگاه دیگر تست کنید |
| ۳ | گواهی SSL دامنه را بررسی کنید |
| ۴ | اگر فقط یک مرورگر مشکل دارد، HSTS همان دامنه را پاک کنید |
| ۵ | در Chrome از chrome://net-internals/#hsts استفاده کنید |
| ۶ | در Edge از edge://net-internals/#hsts استفاده کنید |
| ۷ | در Firefox از Forget About This Site یا فایل SiteSecurityServiceState.txt استفاده کنید |
| ۸ | اگر مدیر سایت هستید، SSL، CA Bundle، ریدایرکتها و هدر HSTS را اصلاح کنید |
برای مطالب مرتبط بیشتر، دسته SSL و گواهیهای امنیتی و دسته امنیت سایت و سرور را دنبال کنید. اگر سایت شما روی هاست یا سرور اختصاصی میزبانی میشود، انتخاب زیرساخت مناسب هم در پایداری SSL و HTTPS مهم است؛ برای شروع میتوانید مقاله راهنمای جامع خرید هاست را بخوانید.
جمعبندی
HSTS یک قابلیت امنیتی مهم برای اجبار مرورگر به استفاده از HTTPS است. این قابلیت از کاربران در برابر برخی حملات محافظت میکند، اما اگر SSL سایت مشکل داشته باشد یا تنظیمات HTTPS بهدرستی انجام نشده باشد، میتواند باعث شود مرورگر اجازه باز کردن سایت را ندهد.
اگر مشکل فقط روی مرورگر شما وجود دارد، میتوانید HSTS ذخیرهشده برای دامنه را در Chrome، Edge یا Firefox پاک کنید. در Chrome و Edge معمولاً از صفحه net-internals/#hsts استفاده میشود و در Firefox میتوانید از گزینه Forget About This Site یا فایل SiteSecurityServiceState.txt کمک بگیرید.
اما اگر شما مدیر سایت هستید، راهحل اصلی پاک کردن HSTS از مرورگر کاربران نیست؛ باید گواهی SSL، زنجیره اعتماد، ریدایرکتها، DNS و هدرهای امنیتی سایت را درست تنظیم کنید. HSTS زمانی مفید است که زیرساخت SSL سایت سالم و کامل باشد.
سوالات متداول
HSTS چیست؟
HSTS یا HTTP Strict Transport Security یک سیاست امنیتی است که به مرورگر میگوید سایت باید فقط از طریق HTTPS باز شود و اتصال HTTP ناامن پذیرفته نشود.
آیا غیرفعال کردن HSTS امن است؟
برای سایتهای عمومی و حساس، دور زدن HSTS توصیه نمیشود. اما برای محیط لوکال، دامنههای تستی یا وقتی مطمئن هستید مشکل فقط از کش مرورگر است، پاک کردن HSTS میتواند مفید باشد.
چطور HSTS را در Chrome پاک کنیم؟
در Chrome وارد chrome://net-internals/#hsts شوید، دامنه را در بخش Query بررسی کنید و سپس در بخش Delete domain security policies همان دامنه را حذف کنید.
چطور HSTS را در Edge پاک کنیم؟
در Edge وارد edge://net-internals/#hsts شوید و دامنه را از بخش Delete domain security policies حذف کنید.
چطور HSTS را در Firefox پاک کنیم؟
سادهترین روش استفاده از History و گزینه Forget About This Site است. روش دیگر، حذف خط مربوط به دامنه از فایل SiteSecurityServiceState.txt در پروفایل Firefox است.
چرا بعد از پاک کردن HSTS هنوز خطای SSL میبینم؟
ممکن است مشکل اصلی از گواهی SSL، دامنه اشتباه، CA Bundle ناقص، تاریخ سیستم، DNS یا تنظیمات سرور باشد. پاک کردن HSTS فقط سیاست ذخیرهشده مرورگر را حذف میکند.
آیا HSTS باعث خطای NET::ERR_CERT_AUTHORITY_INVALID میشود؟
HSTS خودش علت نامعتبر بودن گواهی نیست، اما اگر گواهی نامعتبر باشد و HSTS فعال باشد، مرورگر اجازه عبور ساده از خطا را نمیدهد.
اگر سایت من در HSTS Preload باشد، پاک کردن HSTS کافی است؟
اگر دامنه در preload list مرورگرها باشد، حذف محلی HSTS ممکن است کافی نباشد یا دوباره اعمال شود. برای سایتهای preload شده باید تنظیمات SSL کاملاً صحیح باشد.
آیا برای رفع مشکل HSTS باید SSL را حذف کنیم؟
خیر. معمولاً باید SSL را اصلاح کنید، نه حذف. حذف SSL از سایتی که HSTS دارد میتواند مشکل را بدتر کند، چون مرورگر همچنان انتظار HTTPS معتبر دارد.
برای جلوگیری از مشکل HSTS در سایت چه کار کنیم؟
قبل از فعال کردن HSTS با max-age طولانی یا includeSubDomains، مطمئن شوید SSL همه دامنهها و سابدامینها درست است. ابتدا با max-age کوتاه تست کنید و بعد مقدار را افزایش دهید.
