---
title: "رفع خطای ⁦err_ssl_protocol_error⁩ در کروم و اج"
description: "خطای err_ssl_protocol_error با پیام «این سایت نمی‌تواند اتصالی ایمن ارائه دهد» یعنی دست‌دادن امن با سایت شکست خورده است. ببینید مقصر دستگاه، شبکه یا سایت است."
url: https://proxynet.io/fa/blog/err-ssl-protocol-error
date: 2026-10-05
author: "Acar Diveroli"
category: "آموزش‌ها"
lang: fa
---

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

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

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

> **نکته: پاسخ کوتاه**
>
> `ERR_SSL_PROTOCOL_ERROR` یعنی مرورگر به سرور سایت رسیده، اما دست‌دادن TLS، یعنی تبادل آغازینی که اتصال رمزگذاری‌شده را برقرار می‌کند، شکست خورده است، چون پاسخی که رسیده معتبر نبوده است. اگر یک سایت در همه دستگاه‌ها و شبکه‌ها خطا می‌دهد، پیکربندی همان سایت خراب است؛ اغلب روی پورت امن خود HTTP ساده ارائه می‌دهد و فقط صاحب سایت می‌تواند آن را درست کند. اگر سایت‌های زیادی در یک رایانه یا یک شبکه خطا می‌دهند، یک پنجره ناشناس را امتحان کنید، افزونه‌ها، VPN و برنامه‌های فیلتر را خاموش کنید، اسکن HTTPS آنتی‌ویروس را برای یک بار بارگذاری دوباره متوقف کنید و مرورگر را به‌روز کنید. در `localhost` یا آدرس مودم خودتان، به جای آن `http://` بنویسید. این صفحه هیچ راهی برای ادامه پیشنهاد نمی‌کند و شما هم نباید دنبال چنین راهی باشید.

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

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

[فهرست خطاهای شبکه](https://github.com/chromium/chromium/blob/main/net/base/net_error_list.h) در کرومیوم، کد منبعی که کروم و اج بر آن ساخته شده‌اند، خطای `-107` را در پنج کلمه توصیف می‌کند: ⁦"An SSL protocol error occurred."⁩ (یک خطای پروتکل SSL رخ داد). [کدی که شکست‌های TLS را به این عددها تبدیل می‌کند](https://github.com/chromium/chromium/blob/main/net/ssl/openssl_ssl_util.cc) دلیل این ابهام را نشان می‌دهد: هر شکستی در دست‌دادن که کد مشخص‌تری نداشته باشد، به `-107` ختم می‌شود. پس کد خطا می‌گوید دست‌دادن شکسته است، نه اینکه چه کسی آن را شکسته است.

این خطا هشدار گواهی هم نیست. پیام «اتصال شما خصوصی نیست» و کدهایی که با `NET::ERR_CERT_` شروع می‌شوند بعدتر می‌آیند، یعنی وقتی مرورگر گواهی سایت را می‌سنجد؛ اینجا دست‌دادن پیش از آن نقطه متوقف شده است. مشکلات گواهی در نوشته [خطای «اتصال شما خصوصی نیست» یعنی چه و چگونه رفع می‌شود؟](/fa/blog/your-connection-is-not-private) آمده است.

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

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

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

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

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

1. **اتصال.** مرورگر به سرور وصل می‌شود، معمولاً روی پورت `443` که پورت استاندارد سایت‌های امن است. اگر این گام شکست بخورد، به جای این صفحه «نمی‌توان به این سایت دست یافت» را می‌بینید ([خطای This Site Can't Be Reached](/fa/blog/this-site-cant-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، پروکسی، مسدودکننده تبلیغات و «امنیتی» را خاموش کنید ([گام‌های گوگل](https://support.google.com/chrome/answer/2664769?hl=fa)). در اج، **Extensions** (افزونه‌ها) را کنار نوار آدرس انتخاب کنید، سپس **Manage extensions** (مدیریت افزونه‌ها) را بزنید و از کلید کنار هر افزونه استفاده کنید ([گام‌های مایکروسافت](https://support.microsoft.com/en-us/microsoft-edge/add-turn-off-or-remove-extensions-in-microsoft-edge-9c0ec68c-2fbc-2f2c-9ff0-bdc76f46b026)). اگر خطا از بین رفت، افزونه‌ها را یکی‌یکی دوباره روشن کنید.
2. **نرم‌افزار امنیتی خود را بیازمایید.** برنامه‌هایی که قابلیت اسکن HTTPS، اسکن SSL یا محافظت وب دارند، خود را وسط هر دست‌دادن قرار می‌دهند. فقط همان قابلیت را متوقف کنید، صفحه را یک بار دوباره بارگذاری کنید و سپس آن را دوباره روشن کنید. اگر توقف کمک کرد، به جای خاموش گذاشتن حفاظت، برنامه را به‌روز کنید یا با پشتیبانی آن تماس بگیرید.
3. **VPN و برنامه‌های فیلتر را خاموش کنید**، از جمله برنامه‌هایی که تبلیغات را با عبور دادن ترافیک از خودشان مسدود می‌کنند. بررسی کنید پروکسی فراموش‌شده‌ای در ویندوز تنظیم نشده باشد؛ گام‌های آن در [چگونه پروکسی را از Chrome و Windows حذف کنیم؟](/fa/blog/remove-proxy-chrome-windows) آمده است.
4. **مرورگر را به‌روز کنید.** در کروم، **بیشتر > راهنما > درباره Google Chrome** را انتخاب کنید و اگر **راه‌اندازی مجدد** ظاهر شد، آن را بزنید ([گام‌های گوگل](https://support.google.com/chrome/answer/95414?hl=fa)). در اج، **⁦Settings and more > Help and feedback > About Microsoft Edge⁩** (تنظیمات و موارد بیشتر > راهنما و بازخورد > درباره Microsoft Edge) را انتخاب کنید یا `edge://settings/help` را در نوار آدرس بنویسید. نرم‌افزار امنیتی باید دست‌دادنی را که مرورگر می‌فرستد بفهمد، پس فاصله زیاد میان نسخه‌های این دو می‌تواند بازرسی را مختل کند.
5. **مرورگر را کامل ببندید و دوباره باز کنید.** کروم و اج جزئیات دست‌دادن‌های اخیر را در حافظه نگه می‌دارند؛ یک راه‌اندازی دوباره کامل آن‌ها را پاک می‌کند.

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

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

در شبکه محل کار یا مدرسه، از واحد فناوری اطلاعات (IT) بپرسید؛ این مسدودسازی تصمیم صاحب شبکه است، نه یک ایراد. اینکه سازمان‌ها ترافیک رمزگذاری‌شده را چگونه بازرسی می‌کنند، در [DPI چیست؟ بازرسی عمیق بسته چگونه کار می‌کند؟](/fa/blog/what-is-deep-packet-inspection) توضیح داده شده است.

## چرا 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](https://www.ssllabs.com/ssltest/) از Qualys نسخه‌های TLS را که سایت عمومی شما ارائه می‌دهد و زنجیره گواهی‌ای را که می‌فرستد فهرست می‌کند.
2. **مطمئن شوید پورت `443` واقعاً با TLS پاسخ می‌دهد.** در nginx، [پارامتر `ssl` باید روی سطر `listen` باشد](https://nginx.org/en/docs/http/configuring_https_servers.html)؛ `listen 443;` به‌تنهایی روی پورت امن HTTP ساده ارائه می‌دهد. در Apache، دستور [`SSLEngine`](https://httpd.apache.org/docs/2.4/mod/mod_ssl.html) در mod_ssl به‌طور پیش‌فرض خاموش است، پس بلوک `<VirtualHost *:443>` به `SSLEngine on` نیاز دارد.
3. **⁦TLS 1.2⁩ و ⁦TLS 1.3⁩ را ارائه دهید.** [⁦RFC 8996⁩](https://www.rfc-editor.org/rfc/rfc8996.html) در سال 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 در آن کشور آزمایش کنید، مثلاً از طریق یک [پروکسی مسکونی](https://proxynet.io/fa/residential-proxy).
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` چیست و چگونه رفع می‌شود؟](/fa/blog/err-tunnel-connection-failed)) و یک پروکسی HTTP که در یک افزونه پروکسی به‌عنوان پروکسی HTTPS وارد شده بود، در آزمون ما به `ERR_PROXY_CONNECTION_FAILED` رسید ([خطای پروکسی چیست؟](/fa/blog/proxy-server-not-responding)). استثنا نرم‌افزاری است که عمداً ترافیک رمزگذاری‌شده را باز می‌کند، مانند پروکسی‌های اشکال‌زدایی و برنامه‌های VPN رایگانی که از شما می‌خواهند گواهی نصب کنید؛ چنین نرم‌افزاری درون دست‌دادن می‌نشیند و می‌تواند آن را بشکند ([پروکسی MITM چیست؟](/fa/blog/mitm-proxy)).

گیت‌وی Proxynet تونل‌ها را بدون رمزگشایی جابه‌جا می‌کند، پس هیچ گواهی‌ای از ما نصب نمی‌کنید؛ برای استفاده از [پروکسی HTTPS](https://proxynet.io/fa/https-proxy) در مرورگر، [تنظیم پروکسی در ویندوز و کروم](/fa/blog/windows-chrome-proxy-settings) را ببینید. در اسکریپت‌ها، Playwright در آزمون ما `net::ERR_SSL_PROTOCOL_ERROR` را گزارش کرد و در Python یک `SSLError` همراه با `WRONG_VERSION_NUMBER` اغلب به این معناست که یک پروکسی HTTP با `https://` نوشته شده است ([خطای Max Retries Exceeded With URL](/fa/blog/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⁩ پاسخ می‌دهد. تونل یک پروکسی معمولی به دست‌دادن دست نمی‌زند؛ [صفحه پروکسی ما](/fa/proxy) انواع پروکسی و کاربرد هرکدام را توضیح می‌دهد.
