رفع خطای ⁦err_ssl_protocol_error⁩ در کروم و اج

تاریخ انتشار:

16 دقیقه مطالعه

Acar Diveroli
نویسنده: Acar Diveroli
نوار دست‌دادن TLS: CLIENT HELLO و SERVER HELLO، ضربدر قرمز در محل پارگی، کارت ⁦HTTP/1.1 200 OK⁩، ایستگاه‌های کم‌رنگ و قفل آبی

روی لینک یک فروشگاه اینترنتی کلیک می‌کنید و گوگل کروم به جای آن صفحه‌ای ساده و خاکستری نشان می‌دهد: عنوان «این سایت نمی‌تواند اتصالی ایمن ارائه دهد» (در رابط انگلیسی ⁦"This site can't provide a secure connection"⁩)، سطر «⁦shop.example⁩ پاسخی نامعتبر ارسال کرد.»، پیشنهادی برای اجرای Windows Network Diagnostics و در پایین صفحه ERR_SSL_PROTOCOL_ERROR. بارگذاری دوباره همان صفحه را برمی‌گرداند و مایکروسافت اج هم همین کد را نشان می‌دهد.

ممکن است فروشگاه واقعاً خراب باشد، اما به همان اندازه پیش می‌آید که چیزی در رایانه یا شبکه شما سر راه قرار گرفته باشد. این راهنما توضیح می‌دهد کد چه معنایی دارد و در کدام مرحله از دست‌دادن امن ظاهر می‌شود، کدام علت‌ها را روی سرورهای آزمایشی بازسازی کردیم، راه‌حل‌ها به ترتیبی که ارزش امتحان کردن دارند کدام‌اند، اگر سایت مال شماست چه چیزهایی را بررسی کنید و پروکسی و VPN کجای این ماجرا قرار می‌گیرند.

خطای ERR_SSL_PROTOCOL_ERROR یعنی چه؟

سایت‌هایی که آدرسشان با https:// شروع می‌شود از TLS (Transport Layer Security) استفاده می‌کنند؛ همان رمزگذاری‌ای که پشت نماد قفل است. نام قدیمی‌تر آن، SSL، هنوز در کدهای خطایی مانند همین کد باقی مانده است. پیش از آنکه هیچ صفحه‌ای جابه‌جا شود، مرورگر و سرور یک دست‌دادن کوتاه انجام می‌دهند: بر سر یک نسخه TLS و یک روش رمزگذاری توافق می‌کنند، سرور هویت خود را ثابت می‌کند و هر دو طرف کلیدها را می‌سازند. استاندارد ⁦TLS 1.3⁩، یعنی ⁦RFC 8446⁩، می‌گوید دست‌دادنی که شکست بخورد به اتصال پایان می‌دهد.

فهرست خطاهای شبکه در کرومیوم، کد منبعی که کروم و اج بر آن ساخته شده‌اند، خطای -107 را در پنج کلمه توصیف می‌کند: ⁦"An SSL protocol error occurred."⁩ (یک خطای پروتکل SSL رخ داد). کدی که شکست‌های TLS را به این عددها تبدیل می‌کند دلیل این ابهام را نشان می‌دهد: هر شکستی در دست‌دادن که کد مشخص‌تری نداشته باشد، به -107 ختم می‌شود. پس کد خطا می‌گوید دست‌دادن شکسته است، نه اینکه چه کسی آن را شکسته است.

این خطا هشدار گواهی هم نیست. پیام «اتصال شما خصوصی نیست» و کدهایی که با NET::ERR_CERT_ شروع می‌شوند بعدتر می‌آیند، یعنی وقتی مرورگر گواهی سایت را می‌سنجد؛ اینجا دست‌دادن پیش از آن نقطه متوقف شده است. مشکلات گواهی در نوشته خطای «اتصال شما خصوصی نیست» یعنی چه و چگونه رفع می‌شود؟ آمده است.

صفحه «این سایت نمی‌تواند اتصالی ایمن ارائه دهد» چه می‌گوید؟

سطر روی صفحهیعنی چه
«این سایت نمی‌تواند اتصالی ایمن ارائه دهد»عنوانی که کروم برای شکست‌های دست‌دادن نشان می‌دهد
«⁦example.com⁩ پاسخی نامعتبر ارسال کرد.»پاسخ به نخستین پیام مرورگر یک پاسخ TLS معتبر نبوده است. کروم نام سایت را می‌نویسد، اما نمی‌تواند تشخیص دهد آن پاسخ را خود سایت فرستاده یا دستگاهی در میانه راه
«⁦Windows Network Diagnostics⁩ را اجرا کنید.»لینکی به عیب‌یاب سیستم؛ چون سرور پاسخ داده است، این ابزار به‌ندرت چیزی پیدا می‌کند
ERR_SSL_PROTOCOL_ERROR و مجدد بار کردنکد خطا و دکمه‌ای که فقط دوباره تلاش می‌کند

متن فارسی این سطرها از فایل‌های ترجمه فارسی کرومیوم آمده است و خود صفحه را در کرومیوم 145 روی ویندوز 11 دیدیم؛ در مک، متن لینک «عیب‌یابی شبکه را اجرا کنید» است. مایکروسافت اج بر کرومیوم ساخته شده و همین کد را نشان می‌دهد، هرچند ممکن است متن صفحه‌اش متفاوت باشد. برخلاف هشدار گواهی، این صفحه دکمه پیشرفته ندارد، چون هیچ اتصال امنی وجود ندارد که بتوان روی آن ادامه داد.

دست‌دادن در کدام مرحله می‌شکند؟

بارگذاری یک صفحه امن در کسری از ثانیه از این ایستگاه‌ها می‌گذرد:

  1. اتصال. مرورگر به سرور وصل می‌شود، معمولاً روی پورت 443 که پورت استاندارد سایت‌های امن است. اگر این گام شکست بخورد، به جای این صفحه «نمی‌توان به این سایت دست یافت» را می‌بینید (خطای This Site Can't Be Reached).
  2. Client Hello. مرورگر نسخه‌های TLS و روش‌های رمزگذاری‌ای را که می‌شناسد فهرست می‌کند و نام سایت مورد نظرش را هم می‌فرستد.
  3. Server Hello. سرور یک نسخه و یک روش را انتخاب می‌کند. بیشتر موارد این راهنما همین‌جا می‌شکنند: مرورگر چیزی دریافت می‌کند که نمی‌تواند آن را به‌عنوان TLS بخواند، مانند یک صفحه وب معمولی، یک صفحه مسدودی یا بایت‌های درهم. بخش 5 از ⁦RFC 8446⁩ نرم‌افزار TLS را موظف می‌کند وقتی چنین پیام غیرمنتظره‌ای می‌رسد، اتصال را پایان دهد.
  4. Certificate. سرور گواهی خود را می‌فرستد. شکست در این مرحله به جای این صفحه یک هشدار گواهی می‌آورد.
  5. Finished. هر دو طرف کلیدها را تأیید می‌کنند، نماد قفل ظاهر می‌شود و درخواست صفحه فرستاده می‌شود.

اگر مرورگر و سرور در ایستگاه 3 هیچ نسخه TLS مشترکی نداشته باشند، که معمولاً به این دلیل است که سرور فقط ⁦TLS 1.0⁩ یا ⁦TLS 1.1⁩ را ارائه می‌دهد، عنوان صفحه همان می‌ماند اما کد به ERR_SSL_VERSION_OR_CIPHER_MISMATCH تغییر می‌کند.

علت‌های خطای ERR_SSL_PROTOCOL_ERROR کدام‌اند؟

علتچه کسی آن را می‌بیندچه کسی می‌تواند رفعش کند
سایت روی پورت امن خود HTTP ساده ارائه می‌دهدهمه، در هر دستگاهیصاحب سایت
https:// برای دستگاه یا سرور آزمایشی‌ای نوشته شده که فقط HTTP می‌فهمدفقط همان آدرسشما: برای دستگاه خودتان از http:// استفاده کنید
آنتی‌ویروسی که ترافیک رمزگذاری‌شده را اسکن می‌کند دچار خطا می‌شودبسیاری از سایت‌ها، در یک رایانهشما: آن را به‌روز کنید یا تنظیماتش را تغییر دهید
یک VPN، مسدودکننده تبلیغات یا برنامه «محافظت» که ترافیک را فیلتر می‌کندبسیاری از سایت‌ها، در یک دستگاهشما: برای آزمایش آن را خاموش کنید
یک فیلتر شبکه با صفحه رمزگذاری‌نشده خودش پاسخ می‌دهدسایت‌های مسدودشده، در کل شبکهمدیر شبکه
افزونه مرورگری که در مسیر ترافیک قرار می‌گیردیک مرورگرشما: آن را خاموش کنید

موارد اصلی را با سرورهای آزمایشی کوچک روی رایانه خودمان بازسازی کردیم. در کرومیوم 145، هم سروری که روی پورت امن خود HTTP ساده صحبت می‌کرد و هم سروری که به Client Hello با بایت‌های بی‌معنا پاسخ می‌داد، ERR_SSL_PROTOCOL_ERROR را ایجاد کردند. سروری که فقط ⁦TLS 1.0⁩ و ⁦TLS 1.1⁩ را ارائه می‌داد به ERR_SSL_VERSION_OR_CIPHER_MISMATCH رسید و اتصالی که در میانه دست‌دادن قطع شد، ERR_CONNECTION_CLOSED یا ERR_CONNECTION_RESET را نشان داد.

مشکل از سمت شماست یا از سایت؟

  1. دو یا سه سایت امن دیگر را باز کنید. اگر آن‌ها هم خطا دادند، علت دستگاه یا شبکه شماست.
  2. سایت مشکل‌دار را در گوشی با وای‌فای خاموش باز کنید. اگر با اینترنت همراه هم خطا داد، سایت خراب است؛ صبر کنید یا به صاحب آن خبر دهید.
  3. اگر با اینترنت همراه باز شد، دستگاه دیگری را روی وای‌فای خود امتحان کنید. شکست دوباره به شبکه اشاره دارد و موفقیت به نرم‌افزاری روی رایانه شما.
  4. یک پنجره ناشناس باز کنید، در کروم با بیشتر > پنجره ناشناس جدید. افزونه‌ها آنجا فقط وقتی اجرا می‌شوند که خودتان اجازه داده باشید، پس صفحه‌ای که در پنجره ناشناس باز شود به یک افزونه اشاره دارد.

در رایانه چگونه آن را رفع کنید؟

پس از هر گام، صفحه را دوباره بارگذاری کنید.

  1. افزونه‌ها را خاموش کنید. در کروم، در بالای پنجره (در رابط فارسی سمت چپ) بیشتر > افزونه‌ها > مدیریت افزونه‌ها را انتخاب کنید و افزونه‌های VPN، پروکسی، مسدودکننده تبلیغات و «امنیتی» را خاموش کنید (گام‌های گوگل). در اج، Extensions (افزونه‌ها) را کنار نوار آدرس انتخاب کنید، سپس Manage extensions (مدیریت افزونه‌ها) را بزنید و از کلید کنار هر افزونه استفاده کنید (گام‌های مایکروسافت). اگر خطا از بین رفت، افزونه‌ها را یکی‌یکی دوباره روشن کنید.
  2. نرم‌افزار امنیتی خود را بیازمایید. برنامه‌هایی که قابلیت اسکن HTTPS، اسکن SSL یا محافظت وب دارند، خود را وسط هر دست‌دادن قرار می‌دهند. فقط همان قابلیت را متوقف کنید، صفحه را یک بار دوباره بارگذاری کنید و سپس آن را دوباره روشن کنید. اگر توقف کمک کرد، به جای خاموش گذاشتن حفاظت، برنامه را به‌روز کنید یا با پشتیبانی آن تماس بگیرید.
  3. VPN و برنامه‌های فیلتر را خاموش کنید، از جمله برنامه‌هایی که تبلیغات را با عبور دادن ترافیک از خودشان مسدود می‌کنند. بررسی کنید پروکسی فراموش‌شده‌ای در ویندوز تنظیم نشده باشد؛ گام‌های آن در چگونه پروکسی را از Chrome و Windows حذف کنیم؟ آمده است.
  4. مرورگر را به‌روز کنید. در کروم، بیشتر > راهنما > درباره Google Chrome را انتخاب کنید و اگر راه‌اندازی مجدد ظاهر شد، آن را بزنید (گام‌های گوگل). در اج، ⁦Settings and more > Help and feedback > About Microsoft Edge⁩ (تنظیمات و موارد بیشتر > راهنما و بازخورد > درباره Microsoft Edge) را انتخاب کنید یا edge://settings/help را در نوار آدرس بنویسید. نرم‌افزار امنیتی باید دست‌دادنی را که مرورگر می‌فرستد بفهمد، پس فاصله زیاد میان نسخه‌های این دو می‌تواند بازرسی را مختل کند.
  5. مرورگر را کامل ببندید و دوباره باز کنید. کروم و اج جزئیات دست‌دادن‌های اخیر را در حافظه نگه می‌دارند؛ یک راه‌اندازی دوباره کامل آن‌ها را پاک می‌کند.

چرا فقط در یک شبکه ظاهر می‌شود؟

مدرسه‌ها، محل‌های کار، هتل‌ها، مودم‌هایی که کنترل والدین دارند و برخی ارائه‌دهندگان اینترنت وب‌سایت‌ها را فیلتر می‌کنند. وقتی یک فیلتر سایتی امن را این‌گونه مسدود می‌کند که به جای آن با یک صفحه معمولی و رمزگذاری‌نشده پاسخ می‌دهد، مرورگر در جایی که منتظر Server Hello بود یک صفحه وب دریافت می‌کند؛ همان وضعیتی که سرور آزمایشی HTTP ساده ما ایجاد کرد.

در شبکه محل کار یا مدرسه، از واحد فناوری اطلاعات (IT) بپرسید؛ این مسدودسازی تصمیم صاحب شبکه است، نه یک ایراد. اینکه سازمان‌ها ترافیک رمزگذاری‌شده را چگونه بازرسی می‌کنند، در DPI چیست؟ بازرسی عمیق بسته چگونه کار می‌کند؟ توضیح داده شده است.

چرا localhost یا صفحه مودم این خطا را نشان می‌دهد؟

فرض کنید یک سرور توسعه روی رایانه شما روی http://localhost:3000 منتظر درخواست است، اما مرورگر https://localhost:3000 را باز می‌کند. سرور به Client Hello با HTTP ساده پاسخ می‌دهد و کروم، دقیقاً مانند آزمون ما، ERR_SSL_PROTOCOL_ERROR را گزارش می‌کند. مودم‌ها، چاپگرها، دوربین‌ها و درایوهای شبکه در آدرس‌هایی مانند 192.168.1.1 هم می‌توانند همین رفتار را داشته باشند.

برای دستگاه خودتان در شبکه خودتان، http:// را پیش از آدرس بنویسید و اگر آدرس پورت دارد، آن را هم بیاورید. اگر سرور آزمایشی باید از HTTPS استفاده کند، آن را در تنظیمات خود سرور و با گواهی‌ای که رایانه‌تان به آن اعتماد دارد روشن کنید. این کار را هرگز برای یک وب‌سایت عمومی انجام ندهید: http:// همه چیز را بدون رمزگذاری می‌فرستد.

اگر سایت مال شماست: سرور را چگونه درست کنید

وقتی بازدیدکنندگان این خطا را گزارش می‌دهند و شما هم می‌توانید آن را از گوشی‌ای با اینترنت همراه تکرار کنید، سرور را بررسی کنید:

  1. یک آزمون بیرونی اجرا کنید. ابزار SSL Server Test از Qualys نسخه‌های TLS را که سایت عمومی شما ارائه می‌دهد و زنجیره گواهی‌ای را که می‌فرستد فهرست می‌کند.
  2. مطمئن شوید پورت 443 واقعاً با TLS پاسخ می‌دهد. در nginx، پارامتر ssl باید روی سطر listen باشد؛ listen 443; به‌تنهایی روی پورت امن HTTP ساده ارائه می‌دهد. در Apache، دستور SSLEngine در mod_ssl به‌طور پیش‌فرض خاموش است، پس بلوک <VirtualHost *:443> به SSLEngine on نیاز دارد.
  3. ⁦TLS 1.2⁩ و ⁦TLS 1.3⁩ را ارائه دهید. ⁦RFC 8996⁩ در سال 2021 ⁦TLS 1.0⁩ و ⁦TLS 1.1⁩ را منسوخ اعلام کرد و سروری که فقط این دو را ارائه دهد، ERR_SSL_VERSION_OR_CIPHER_MISMATCH می‌گیرد. nginx از نسخه ⁦1.23.4⁩ به بعد به‌طور پیش‌فرض ⁦TLS 1.2⁩ و ⁦TLS 1.3⁩ را ارائه می‌دهد.
  4. همه سرورهای پشت این نام را بررسی کنید. پشت یک متعادل‌کننده بار یا CDN (شبکه توزیع محتوا)، یک ماشین با پیکربندی نادرست فقط برای برخی بازدیدکنندگان یا منطقه‌ها خطا ایجاد می‌کند. برای اینکه ببینید بازدیدکنندگان در کشوری دیگر چه می‌بینند، از یک آدرس IP در آن کشور آزمایش کنید، مثلاً از طریق یک پروکسی مسکونی.
  5. پس از هر تغییر، پیکربندی را دوباره بارگذاری کنید.

یک بلوک ساده nginx؛ سطر ssl_protocols همان مقدار پیش‌فرض را تکرار می‌کند و فقط وقتی اهمیت دارد که چیز دیگری آن را تغییر داده باشد:

nginx
server {
    listen 443 ssl;
    server_name example.com www.example.com;
    ssl_certificate     /etc/ssl/example.com/fullchain.pem;
    ssl_certificate_key /etc/ssl/example.com/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
}

گواهی منقضی‌شده، نامی که با آدرس مطابقت ندارد یا گواهی میانی‌ای که فرستاده نشده است به هشدار گواهی می‌انجامد، نه به این صفحه.

سطح پیشرفته: آیا پورت ⁦443⁩ با TLS پاسخ می‌دهد؟

این بررسی برای صاحبان سایتی است که با خط فرمان کار می‌کنند. curl در ویندوز 10، ویندوز 11 و macOS از پیش نصب است؛ در PowerShell ویندوز به جای آن curl.exe بنویسید، چون آنجا curl نام مستعار فرمان دیگری است. این فرمان عمداً یک درخواست رمزگذاری‌نشده به پورت امن می‌فرستد:

bash
curl -I http://example.com:443

به جای example.com دامنه خودتان را بگذارید و سطر نخست پاسخ را بخوانید:

  • یک سطر وضعیت عادی، مانند HTTP/1.1 200 OK یا یک تغییر مسیر (redirect): پورت 443 با HTTP ساده پاسخ می‌دهد، پس TLS خاموش است. سرور آزمایشی HTTP ساده ما HTTP/1.0 200 OK را برگرداند.
  • 400 Bad Request: پاسخ nginx وقتی HTTP ساده به پورت TLS می‌رسد؛ صفحه آن می‌گوید ⁦"The plain HTTP request was sent to HTTPS port"⁩. TLS روشن است.
  • curl: (52) Empty reply from server: سرور درخواست رمزگذاری‌نشده را بی‌پاسخ رها کرد، همان‌طور که سرور TLS آزمایشی ما کرد. TLS روشن است.

اگر از پروکسی یا VPN استفاده می‌کنید چه؟

یک پروکسی معمولی به‌ندرت علت این خطاست. برای یک سایت https://، مرورگر از پروکسی یک تونل می‌خواهد و دست‌دادن با سایت را از درون آن انجام می‌دهد، در حالی که پروکسی بایت‌های رمزگذاری‌شده را بدون خواندن جابه‌جا می‌کند. در آزمون ما، سایتی که روی پورت امن خود HTTP ساده صحبت می‌کرد با پروکسی و بدون پروکسی همان ERR_SSL_PROTOCOL_ERROR را داد و سایتی که درست پیکربندی شده بود دست‌نخورده از آن گذشت. عوض کردن پروکسی یا سرور VPN نمی‌تواند سایت خراب را درست کند.

مشکلات پروکسی با کدهای دیگری دیده می‌شوند: تونلی که رد شود ERR_TUNNEL_CONNECTION_FAILED می‌دهد (خطای err_tunnel_connection_failed چیست و چگونه رفع می‌شود؟) و یک پروکسی HTTP که در یک افزونه پروکسی به‌عنوان پروکسی HTTPS وارد شده بود، در آزمون ما به ERR_PROXY_CONNECTION_FAILED رسید (خطای پروکسی چیست؟). استثنا نرم‌افزاری است که عمداً ترافیک رمزگذاری‌شده را باز می‌کند، مانند پروکسی‌های اشکال‌زدایی و برنامه‌های VPN رایگانی که از شما می‌خواهند گواهی نصب کنید؛ چنین نرم‌افزاری درون دست‌دادن می‌نشیند و می‌تواند آن را بشکند (پروکسی MITM چیست؟).

گیت‌وی Proxynet تونل‌ها را بدون رمزگشایی جابه‌جا می‌کند، پس هیچ گواهی‌ای از ما نصب نمی‌کنید؛ برای استفاده از پروکسی HTTPS در مرورگر، تنظیم پروکسی در ویندوز و کروم را ببینید. در اسکریپت‌ها، Playwright در آزمون ما net::ERR_SSL_PROTOCOL_ERROR را گزارش کرد و در Python یک SSLError همراه با WRONG_VERSION_NUMBER اغلب به این معناست که یک پروکسی HTTP با https:// نوشته شده است (خطای Max Retries Exceeded With URL).

اشتباه‌های رایج

  • گشتن به دنبال راهی برای رد شدن از صفحه. هیچ اتصال رمزگذاری‌شده‌ای وجود ندارد، پس چیزی نیست که بتوان از آن گذشت. http:// داده‌های شما را بدون رمزگذاری می‌فرستد؛ آن را برای مودم یا سرور آزمایشی خودتان نگه دارید.
  • خاموش گذاشتن آنتی‌ویروس. فقط اسکن را متوقف کنید، آن هم فقط برای یک آزمایش.
  • پاک کردن پیاپی حافظه پنهان (کش) و کوکی‌ها. هیچ‌کدام در دست‌دادن نقشی ندارند.
  • زدن دکمه Clear SSL state (پاک کردن وضعیت SSL) در ویندوز. این دکمه در Internet Options (گزینه‌های اینترنت) از دوران Internet Explorer مانده است و حافظه پنهان خود ویندوز را خالی می‌کند؛ کروم و اج حافظه خودشان را درون مرورگر نگه می‌دارند و یک راه‌اندازی دوباره کامل آن را پاک می‌کند.
  • خاموش کردن QUIC در chrome://flags. QUIC، پروتکل انتقالی که ⁦HTTP/3⁩ بر آن تکیه دارد، کد خودش را دارد: ERR_QUIC_PROTOCOL_ERROR.
  • درست کردن ساعت برای این خطا. تاریخ نادرست بررسی گواهی را مختل می‌کند و به جای این صفحه هشدار ساعت یا گواهی را می‌آورد.

راهنمای انتخاب

وضعیتچه کنید
یک سایت در همه دستگاه‌ها و شبکه‌ها خطا می‌دهدسایت خراب است؛ صبر کنید یا به صاحب آن خبر دهید
همه سایت‌های امن در یک رایانه خطا می‌دهندنخست افزونه‌ها، سپس نرم‌افزار امنیتی، سپس برنامه‌های VPN یا فیلتر
فقط یک شبکه وای‌فای این خطا را نشان می‌دهدیک فیلتر شبکه؛ از کسی که شبکه را اداره می‌کند بپرسید
صفحه در پنجره ناشناس باز می‌شودافزونه‌ها را یکی‌یکی خاموش کنید
آدرس localhost یا 192.168.x.x استبرای دستگاه خودتان از http:// استفاده کنید
سایت مال شماستlisten 443 ssl یا SSLEngine on و نیز ⁦TLS 1.2⁩ و ⁦TLS 1.3⁩ را بررسی کنید

پرسش‌های متداول

چرا ERR_SSL_PROTOCOL_ERROR در همه مرورگرها ظاهر می‌شود؟

علت بیرون از مرورگر است: نرم‌افزار امنیتی، یک برنامه VPN یا فیلتر، یا خود شبکه. افزونه‌ها میان کروم، اج و فایرفاکس منتقل نمی‌شوند، اما اسکن آنتی‌ویروس و فیلترهای شبکه روی همه آن‌ها اثر می‌گذارند. اگر یک سایت در همه جا خطا می‌دهد، پیکربندی خود سایت نادرست است.

ERR_SSL_PROTOCOL_ERROR را در گوشی اندروید چگونه رفع کنیم؟

میان وای‌فای و اینترنت همراه جابه‌جا شوید، برنامه‌های VPN و مسدودکننده تبلیغات را خاموش کنید (بسیاری از آن‌ها در گوشی به شکل یک VPN اجرا می‌شوند)، کروم را از Google Play به‌روز کنید و گوشی را دوباره راه‌اندازی کنید. اگر سایت با اینترنت همراه هم خطا می‌دهد، مشکل از سمت سایت است.

آیا می‌توان از ERR_SSL_PROTOCOL_ERROR گذشت؟

نه، و اصلاً چیزی برای گذشتن وجود ندارد. اتصال رمزگذاری‌شده هرگز شکل نگرفته است، پس کروم هیچ راهی برای ادامه پیشنهاد نمی‌کند. نوشتن http:// داده‌های شما را بدون رمزگذاری می‌فرستد و این فقط برای مودم یا سرور آزمایشی خودتان پذیرفتنی است.

چرا localhost خطای ERR_SSL_PROTOCOL_ERROR را نشان می‌دهد؟

سرور توسعه شما HTTP ساده صحبت می‌کند و مرورگر آن را با https:// باز کرده است. از http://localhost همراه با شماره پورت استفاده کنید یا HTTPS را در تنظیمات سرور روشن کنید.

آیا ERR_SSL_PROTOCOL_ERROR نشانه هک شدن رایانه من است؟

معمولاً نه؛ بیشتر موارد به نرم‌افزار امنیتی، فیلترها، افزونه‌ها یا سایتی با پیکربندی نادرست برمی‌گردند. اگر نرم‌افزاری که هرگز نصب نکرده‌اید ترافیک رمزگذاری‌شده را رهگیری می‌کند، یک اسکن بدافزار اجرا کنید و هرگز گواهی‌ای را که یک وب‌سایت یا برنامه از شما می‌خواهد نصب نکنید.

آیا VPN یا پروکسی خطای ERR_SSL_PROTOCOL_ERROR را رفع می‌کند؟

نه وقتی سایت خراب است: VPN یا پروکسی همان دست‌دادن را به همان سرور می‌برد. اگر فیلتری در شبکه شما علت آن است، این تصمیم صاحب شبکه است، پس از خود او بپرسید.

خلاصه

ERR_SSL_PROTOCOL_ERROR یعنی دست‌دادن TLS پیش از آنکه حتی نوبت به بررسی گواهی برسد شکسته است، معمولاً چون مرورگر به جای یک Server Hello معتبر چیز دیگری دریافت کرده است. نخست ببینید یک سایت خطا می‌دهد یا همه سایت‌ها، سپس به ترتیب افزونه‌ها، نرم‌افزار امنیتی، برنامه‌های VPN و فیلتر و در پایان شبکه را بررسی کنید؛ در localhost یا صفحه مودم از http:// استفاده کنید. اگر سایت مال شماست، مطمئن شوید پورت 443 با ⁦TLS 1.2⁩ یا ⁦TLS 1.3⁩ پاسخ می‌دهد. تونل یک پروکسی معمولی به دست‌دادن دست نمی‌زند؛ صفحه پروکسی ما انواع پروکسی و کاربرد هرکدام را توضیح می‌دهد.

پرسش از ChatGPTپرسش از Claude