ارور TLS چیست و چگونه رفع میشود؟
در این مقاله میخوانید
وقتی مرورگر مسیر ورود به یک سایت را با یک هشدار امنیتی مسدود میکند، در واقع فرایند احراز هویت بین کلاینت و سرور با شکست مواجه شده است. خطای TLS دقیقا همین نقطه توقف است. یک دیوار دفاعی که مرورگر برای محافظت از دادهها ایجاد میکند، اما برای صاحب وبسایت به معنای ریزش آنی ترافیک و از دست رفتن اعتماد کاربر است.
این خطا یکی از چالشهای همیشگی در مدیریت وبسرورها است و اگر بهسرعت رفع نشود، علاوه بر مسدود کردن دسترسی، ضربه سنگینی به جایگاه سایت در موتورهای جستوجو وارد میکند. در این مقاله از بخش آموزش SSL در بلاگ پارسپک، ساختار خطای TLS و تفاوت آن با خطاهای قدیمیتر SSL را کالبدشکافی میکنیم و راهکارهای عملی رفع آن را در هر دو سمت کاربر و سرور آموزش میدهیم.
ارور TLS چیست؟
پروتکل TLS یا Transport Layer Security وظیفه رمزنگاری اطلاعات مبادلهشده بین مرورگر و سرور را بر عهده دارد. خطای TLS زمانی رخ میدهد که این فرایند رمزنگاری و برقراری ارتباط ایمن به هر دلیلی مختل شود. در این وضعیت، مرورگر به جای بارگذاری سایت، هشدار ناامن بودن اتصال را نمایش میدهد، زیرا قادر به تایید صحت گواهینامه سایت یا نسخه پروتکل نیست. منقضی شدن گواهی، پیکربندی اشتباه سرور یا ناسازگاری نسخه TLS بین کلاینت و سرور از مهمترین دلایل بروز این اختلال هستند.
پروتکل TLS چیست و چگونه کار میکند؟ جواب این سوال را در مقاله زیر بخوانید. با مطالعه این مقاله میتوانید با تاریخچه گواهینامه TLS و ویژگیهای این گواهی آشنا شوید:
ارور TLS چه تفاوتی با ارور SSL دارد؟
از نظر فنی، SSL نسخه قدیمیتر و TLS نسخه بهروزتر و امنتر همین پروتکل رمزنگاری است. به همین دلیل بسیاری از کاربران و حتی برخی مقالات این دو اصطلاح را بهجای هم بهکار میبرند، در حالیکه از نظر ساختار فنی تفاوتهای مهمی با هم دارند. نکته مهم اینجاست که وقتی مرورگر ارور TLS نمایش میدهد، در واقع باز هم به مشکل در همان لایه امنیتی گواهی سایت اشاره دارد.
اگر میخواهید با جزئیات این تفاوتها آشنا شوید، پیشنهاد میکنیم که مقاله زیر را از دست ندهید:
انواع خطاهای TLS
پیش از رفع مشکل، بهتر است بدانید ارور TLS میتواند به شکلها و پیامهای مختلفی روی مرورگرهای گوناگون ظاهر شود. هرکدام از این پیامها بهطور خاص به یک ریشه فنی مشخص اشاره دارند که شناخت آنها اولین قدم برای عیبیابی درست است. در ادامه انواع خطاهای TLS را بررسی میکنیم:
TLS Handshake Failed
این خطا زمانی رخ میدهد که فرایند Handshake بین مرورگر و سرور، یعنی همان مرحلهای که دو طرف باید بر سر الگوریتم رمزنگاری و کلیدهای امنیتی به توافق برسند، ناتمام میماند. علت آن معمولا ناسازگاری نسخه پروتکل، مشکل در فایروال یا آنتیویروس، یا حتی تنظیم نادرست ساعت سیستم کاربر است.
TLS Version Error
این ارور زمانی نمایش داده میشود که مرورگر کاربر از نسخه قدیمیتری از TLS پشتیبانی میکند اما سرور فقط نسخههای جدیدتر مانند TLS 1.2 یا 1.3 را میپذیرد، یا برعکس. به عبارت دیگر، دو طرف زبان مشترکی برای مذاکره امنیتی پیدا نمیکنند.
SSL/TLS Certificate Error
یکی از پرتکرارترین دلایل بروز این خطا، مشکل در خود گواهینامه است؛ گواهی منقضیشده، صادرشده برای دامنه دیگر، یا نصب ناقص زنجیره گواهی (Certificate Chain) از رایجترین دلایل این نوع ارور هستند.
اگر هنوز هم نمیدانید که کدام نوع SSL برای شما مناسب است؟ مقاله زیر یک راهنمای کامل برای شماست: راهنمای خرید گواهی SSL
ERR_SSL_PROTOCOL_ERROR
این پیام مخصوص مرورگر کروم است و معمولا زمانی ظاهر میشود که سرور اصلا پروتکل SSL/TLS را بهدرستی پیکربندی نکرده یا پورت اشتباهی برای ارتباط امن در نظر گرفته شده است.
ERR_SSL_VERSION_OR_CIPHER_MISMATCH
این خطا دقیقا به ناسازگاری در الگوریتمهای رمزنگاری (Cipher Suites) پشتیبانیشده توسط سرور و مرورگر اشاره دارد؛ یعنی حتی اگر نسخه TLS مشترک باشد، ممکن است سرور از الگوریتم رمزنگاری خاصی استفاده کند که در مرورگر کاربر غیرفعال یا منسوخ شده است.
خرید گواهی امنیتی SSL با بهترین امکانات از پارسپک
حفظ حریم خصوصی کاربران، دادههای مهم و اطلاعات حساس را با خرید گواهی SSL از پارسپک تضمین کنید. صدور این گواهی در سریعترین زمان ممکن به شما کمک میکند تا از اتلاف وقت جلوگیری نمایید.
نحوه رفع ارور TLS
خوشبختانه در اغلب موارد، رفع ارور TLS نیازی به دانش فنی عمیق ندارد و با چند بررسی ساده قابل حل است؛ اما گاهی هم ریشه مشکل در تنظیمات سرور است و نیاز به دخالت مدیر سایت دارد. نکته مهم این است که این خطا هم میتواند از سمت کلاینت (مرورگر و سیستم کاربر) شروع شود و هم از سمت سرور، و شناسایی دقیق منشأ آن اولین قدم برای رفع سریع مشکل است. در ادامه هر دو حالت را بهصورت جداگانه و گامبهگام بررسی میکنیم.
رفع ارور TLS در سمت کاربر
برای رفع این مشکل در سیستم کاربر، راهکارهای زیر را به ترتیب امتحان کنید:
- تنظیم تاریخ و ساعت سیستم: هر گواهی SSL/TLS یک بازه زمانی اعتبار مشخص دارد و اگر ساعت سیستم با زمان واقعی همخوانی نداشته باشد، مرورگر نمیتواند اعتبار گواهی را تایید کند و فرایند Handshake با شکست مواجه میشود. کافی است تاریخ و ساعت را روی حالت Automatic قرار دهید.
- پاککردن کش و کوکیهای مرورگر: نگهداشتن اطلاعات قدیمی در کش گاهی با فرایند اعتبارسنجی اتصال تداخل پیدا میکند. کش و کوکیها را از بخش Privacy and security قسمت Delete browsing data بهطور کامل پاک کنید و مطمئن شوید مرورگر به آخرین نسخه بهروزرسانی شده است.

- تست با مرورگر دیگر: اگر مشکل همچنان باقی ماند، سایت را یکبار با مرورگر دیگری باز کنید تا مشخص شود، خطا از پیکربندی همان مرورگر خاص است یا نه.
- غیرفعالکردن موقت افزونهها: برخی افزونههای مرورگر میتوانند در فرایند برقراری اتصال امن دخالت کنند. غیرفعالکردن موقت آنها از بخش Manage extensions مرورگر به شناسایی عامل مزاحم کمک میکند. همچنین تست در حالت Incognito و در برخی مرورگرها با عنوان Private window نیز در صورتیکه افزونهها در این حالت فعال نباشند راهکار سادهتری برای تست بدون افزونهها است.

- بررسی آنتیویروس، شبکه خصوصی مجازی و پروکسی: آنتیویروسها، تنظیمات شبکه خصوصی مجازی و بهخصوص پروکسیسرورها و فیلترهای محتوا گاهی در فرایند اعتبارسنجی گواهی دخالت میکنند و باعث بروز ارور TLS میشوند. غیرفعالکردن موقت این ابزارها معمولا کمک میکند تا مشخص شود مشکل واقعا از شبکه یا نرمافزار امنیتی کاربر است یا خیر.
رفع ارور TLS در سمت سرور
اگر مدیریت سرور یا هاست سایت را بر عهده دارید، مراحل زیر را به ترتیب دنبال کنید:
۱. بررسی وضعیت و زنجیره گواهی: ابتدا مطمئن شوید گواهی منقضی، باطلشده (Revoked) یا هنوز فعال نشده (Inactive) نیست، نام دامنه ثبتشده در گواهی (CN) دقیقا با آدرس سایت مطابقت دارد و تمام گواهیهای میانی (Intermediate) بهدرستی و بهصورت کامل نصب شدهاند. ناقصبودن زنجیره گواهی یکی از رایجترین دلایل بروز این خطا از سمت سرور است. برای اینکار از ابزارهای تست آنلاین گواهی میتوانید کمک بگیرید. اگر گواهی باطل شده باشد، باید از طریق CA صادرکننده درخواست صدور گواهی جدید (CSR) بدهید و پس از تایید مالکیت دامنه، گواهی تازه را جایگزین کنید.
۲. غیرفعالسازی نسخههای قدیمی TLS: با ورود به فایلهای پیکربندی وبسرور (مانند Nginx یا Apache)، نسخههای منسوخ TLS 1.0 و TLS 1.1 را غیرفعال کرده و استانداردهای جدید (نسخههای ۱.۲ و ۱.۳) را اعمال کنید؛ برای مثال در Nginx این تنظیم با افزودن خط زیر به فایل پیکربندی انجام میشود:
ssl_protocols TLSv1.2 TLSv1.3;
۳. اطمینان از سازگاری نسخه پروتکل: باید مطمئن شوید سرور با نسخه مرورگر کاربر روی یک پروتکل مشترک به توافق میرسد، چون ناسازگاری نسخه TLS بین کلاینت و سرور یکی از علل اصلی شکست Handshake است.
۴. بررسی و بهروزرسانی Cipher Suiteها: مطابقت Cipher Suiteها با استانداردهای امنیتی روز را بررسی کنید؛ از آنجا که TLS 1.3 دیگر از الگوریتمهای رمزنگاری قدیمی پشتیبانی نمیکند، حذف الگوریتمهای ضعیف و اولویتدهی به رمزهای قویتر در تنظیمات سرور باعث کاهش این نوع خطا میشود. برای انجام این کار، ابتدا باید فهرست Cipher Suiteهای فعال روی سرورتان را مشخص کنید؛ سادهترین راه، اجرای یک تست آنلاین پروتکل SSL/TLS روی دامنه سایت است که در گزارش خروجی، تمام رمزهای فعال به همراه سطح امنیتی هرکدام نمایش داده میشود. اگر در این گزارش به الگوریتمهای قدیمی و ناامن مانند RC4، DES، 3DES یا هر Cipher مبتنی بر SHA-1 برخوردید، باید آنها را از پیکربندی سرور حذف کنید.
در مرحله بعد، وارد فایل پیکربندی وبسرور شوید و رمزهای مجاز را بهصورت صریح تعریف کنید. برای مثال در Nginx این کار با افزودن دستورات زیر انجام میشود:
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256'; ssl_prefer_server_ciphers on;
در Apache نیز میتوانید با دستور مشابه SSLCipherSuite همین تنظیم را در فایل پیکربندی سایت اعمال کنید. پس از ذخیرهی تغییرات، سرویس وبسرور را ریاستارت کنید تا پیکربندی جدید اعمال شود، و در نهایت یکبار دیگر همان تست آنلاین را اجرا کنید تا مطمئن شوید که فقط رمزهای قوی و بهروز فعال هستند و امتیاز امنیتی سایت بهبود یافته است.
۵. بررسی تنظیمات SNI: در سرورهایی که چند سایت روی یک IP مشترک میزبانی میشوند، باید تنظیمات SNI (Server Name Indication) بهدرستی پیکربندی شده باشد تا سرور بتواند گواهی متناسب با هر نام میزبان را بهدرستی ارائه دهد؛ در غیر این صورت ممکن است خطای عدم تطابق نام گواهی رخ دهد.
۶. بررسی قوانین فایروال: قوانین فایروال و گروههای امنیتی سرور را بررسی کنید تا مطمئن شوید پورت ۴۴۳ یا سایر پورتهای مرتبط با TLS بهاشتباه مسدود نشدهاند.
۷. تست نهایی پیکربندی: پس از اعمال هر تغییر، بهترین کار این است که با یک ابزار آنلاین تست گواهی SSL/TLS مانند ssllabs، صحت پیکربندی نهایی سرور را بررسی و تایید کنید.
همهچیز درباره انواع خطای SSL و نحوه رفع آنها را در مقاله زیر بخوانید:
چگونه از بروز خطای TLS جلوگیری کنیم؟
پیشگیری از این خطا بسیار سادهتر از رفع آن پس از وقوع است. تمدید بهموقع گواهی SSL پیش از تاریخ انقضا، فعالسازی هشدارهای خودکار برای نزدیکشدن به تاریخ انقضا، بهروزرسانی منظم نرمافزار وبسرور و پنل مدیریتی هاست، و غیرفعالسازی نسخههای قدیمی و ناامن پروتکل از ابتدای راهاندازی سرور، همگی از اقداماتی هستند که احتمال بروز ارور TLS را بهشدت کاهش میدهند. همچنین توصیه میشود بهصورت دورهای، سلامت گواهی و پیکربندی امنیتی دامنه را با ابزارهای آنلاین تست SSL بررسی کنید تا از هرگونه مشکل احتمالی پیش از تاثیرگذاری روی بازدیدکنندگان مطلع شوید.
بدون پرداخت هزینه امنیت وبسایت خود را تضمین کنید.
گواهینامه SSL رایگان پارسپک را به راحتی و بدون پرداخت هیچ هزینهای تنها با یک کلیک تهیه کنید و آن را برای حفظ امنیت دادههایتان استفاده نمایید:
جمعبندی
ارور TLS نشاندهنده نقص در پیکربندی ارتباط امن یا پایان اعتبار گواهینامه سایت است. با شناخت دقیق نوع خطا میتوان فرایند عیبیابی را در سمت کاربر یا سرور با سرعت بالایی انجام داد. پایداری دسترسی کاربران مستقیما به اعتبار گواهینامه و پیکربندی صحیح زیرساخت بستگی دارد. سرویس SSL و گواهینامه امنیتی پارسپک، با پشتیبانی از جدیدترین استانداردهای رمزنگاری، زیرساختی پایدار و بدون قطعی را برای میزبانی امن پروژههای شما فراهم میکنند.
سوالات متداول
۱. آیا ارور TLS به معنای هکشدن سایت است؟
نه لزوما. این خطا معمولا از مشکلات پیکربندی یا انقضای گواهی SSL ناشی میشود و ارتباط مستقیمی با نفوذ یا هک سایت ندارد؛ هرچند نادیدهگرفتن آن میتواند سایت را در برابر تهدیدات امنیتی آسیبپذیرتر کند.
۲. چرا ارور TLS فقط در برخی مرورگرها ظاهر میشود؟
چون هر مرورگر از نسخهها و الگوریتمهای رمزنگاری متفاوتی پشتیبانی میکند؛ ممکن است سرور با یک مرورگر سازگار باشد اما با مرورگر دیگری به دلیل عدم پشتیبانی از نسخه خاصی از TLS، خطا نمایش دهد.
۳. آیا رفع ارور TLS همیشه نیاز به دسترسی سرور دارد؟
خیر. در بسیاری از موارد، مشکل از سمت کاربر و ناشی از تنظیمات نادرست تاریخ، مرورگر قدیمی یا کش خراب است و بدون نیاز به دسترسی سرور قابل رفع است.
۴. بعد از تمدید گواهی SSL، چرا هنوز ارور TLS نمایش داده میشود؟
معمولا این اتفاق به دلیل نصب ناقص زنجیره گواهی یا کششدن نسخه قدیمی گواهی در مرورگر یا سرور رخ میدهد؛ ریاستارت سرویس وبسرور و پاککردن کش مرورگر معمولا این مشکل را برطرف میکند.