خطای ERR_SSL_PROTOCOL_ERROR زمانی نمایش داده می‌شود که مرورگر نتواند یک ارتباط امن HTTPS را با سرور برقرار کند. در این شرایط، فرآیند TLS Handshake قبل از ایجاد Session رمزنگاری‌شده شکست می‌خورد و مرورگر به‌جای باز کردن سایت، پیامی مانند ERR_SSL_PROTOCOL_ERROR نمایش می‌دهد.

این خطا یکی از مبهم‌ترین خطاهای SSL/TLS است؛ زیرا علت آن می‌تواند از یک مشکل ساده در ساعت سیستم کاربر شروع شود و تا نصب اشتباه Certificate، ناقص بودن Intermediate Certificate، تنظیم نادرست Nginx یا Apache، ناسازگاری TLS Version و Cipher Suite، اختلال Cloudflare، SNI اشتباه یا حتی دخالت Proxy، Antivirus و ISP ادامه پیدا کند.

بنابراین برای رفع خطای ERR_SSL_PROTOCOL_ERROR نباید فقط یک راه‌حل مانند پاک کردن Cache مرورگر را امتحان کرد. روش درست این است که ابتدا مشخص کنیم مشکل سمت Client است یا Server و بعد TLS Handshake را مرحله‌به‌مرحله بررسی کنیم.

در این مقاله، یک مسیر عیب‌یابی عملی ارائه می‌کنیم تا بتوانید این خطا را در Chrome، Firefox، Safari، Cloudflare، Nginx، Apache و سرور Linux بررسی و برطرف کنید.

سطح مقاله: متوسط | مناسب برای: مدیران سایت، کاربران وردپرس، مدیران هاست و VPS، DevOps، مدیران Linux Server و کارشناسان SSL/TLS.

فهرست مطالب

ERR_SSL_PROTOCOL_ERROR چیست؟

هنگامی که مرورگر به یک آدرس HTTPS متصل می‌شود، قبل از ارسال درخواست HTTP باید یک ارتباط TLS امن ایجاد شود.

به‌صورت ساده:

Browser
   ↓
TCP Connection
   ↓
TLS Handshake
   ↓
Certificate Verification
   ↓
Encrypted Session
   ↓
HTTPS Request

اگر فرآیند TLS قبل از ایجاد Session امن شکست بخورد، مرورگر ممکن است خطای زیر را نمایش دهد:

ERR_SSL_PROTOCOL_ERROR

در Chrome معمولاً پیام مشابه زیر دیده می‌شود:

This site can't provide a secure connection

در Firefox یا Safari ممکن است متن متفاوت باشد، اما ریشه مشکل همچنان می‌تواند شکست در TLS Handshake باشد.

Cloudflare نیز در مستندات خود این خطا را در گروه خطاهای شکست SSL/TLS Handshake قرار می‌دهد. citeturn957315search0

TLS Handshake چگونه شکست می‌خورد؟

برای فهم بهتر خطا، ابتدا مسیر Handshake را مرور کنیم.

  1. مرورگر یک ClientHello ارسال می‌کند.
  2. نسخه‌های TLS و Cipher Suiteهای قابل پشتیبانی را اعلام می‌کند.
  3. سرور یک ServerHello برمی‌گرداند.
  4. Certificate سرور ارسال می‌شود.
  5. مرورگر Certificate Chain و Hostname را بررسی می‌کند.
  6. دو طرف Key Exchange را انجام می‌دهند.
  7. Session رمزنگاری‌شده ایجاد می‌شود.

اگر یکی از این مراحل شکست بخورد، خطای Protocol یا Handshake رخ می‌دهد.

برای آشنایی عمیق‌تر با تفاوت پروتکل‌های قدیمی و مدرن، مقاله تفاوت SSL و TLS را مطالعه کنید.

چطور بفهمیم مشکل از مرورگر است یا سرور؟

اولین مرحله عیب‌یابی این است که مشخص کنیم خطا فقط برای یک کاربر رخ می‌دهد یا برای همه.

وضعیتاحتمال بیشتر
فقط یک Browser مشکل داردCache، Extension، TLS State
فقط یک سیستم مشکل داردساعت سیستم، Antivirus، Proxy
فقط یک ISP مشکل داردNetwork Interference
با VPN کار می‌کندISP، DPI یا Routing
برای همه کاربران خطا داردServer، SSL، Certificate یا CDN
فقط HTTPS مشکل داردTLS یا پورت ۴۴۳

یک تست ساده:

  • سایت را با Mobile Data باز کنید.
  • روی Wi-Fi امتحان کنید.
  • VPN را روشن یا خاموش کنید.
  • یک Browser دیگر امتحان کنید.

این تست ساده می‌تواند محدوده مشکل را سریعاً کوچک کند.

دلایل رایج ERR_SSL_PROTOCOL_ERROR

رایج‌ترین علت‌ها عبارت‌اند از:

  • Certificate منقضی شده
  • Certificate هنوز معتبر نشده است
  • Certificate برای Hostname اشتباه صادر شده
  • Intermediate Certificate ناقص است
  • Private Key و Certificate متعلق به یکدیگر نیستند
  • TLS Version ناسازگار است
  • Cipher Suite مشترکی وجود ندارد
  • SNI اشتباه پیکربندی شده است
  • پورت ۴۴۳ به سرویس اشتباهی متصل است
  • Nginx یا Apache SSL VirtualHost اشتباه است
  • Cloudflare SSL Mode نامناسب است
  • HTTP/۳ یا QUIC در برخی شبکه‌ها مشکل دارد
  • Antivirus روی HTTPS Inspection انجام می‌دهد
  • Proxy یا VPN در TLS دخالت می‌کند
  • ساعت دستگاه اشتباه است

چک سریع قبل از عیب‌یابی تخصصی

ابتدا این موارد را بررسی کنید:

  1. آیا دامنه به IP درست Resolve می‌شود؟
  2. آیا پورت ۴۴۳ باز است؟
  3. آیا Certificate منقضی نشده؟
  4. آیا Certificate دامنه را پوشش می‌دهد؟
  5. آیا Nginx یا Apache در حال اجراست؟
  6. آیا CDN یا Reverse Proxy فعال است؟

برای بررسی پورت می‌توانید از ابزار بررسی پورت پویاسازان استفاده کنید.

تست SSL/TLS با OpenSSL

مهم‌ترین ابزار خط فرمان برای عیب‌یابی این خطا:

openssl s_client \
  -connect example.com:443 \
  -servername example.com

گزینه -servername برای SNI مهم است و کمک می‌کند Certificate مربوط به همان دامنه دریافت شود.

در خروجی به موارد زیر توجه کنید:

  • Protocol
  • Cipher
  • Certificate Chain
  • Verify Return Code
  • Handshake Error

مستندات OpenSSL توضیح می‌دهد که s_client ابزار تشخیصی TLS است و حتی می‌تواند Verification Errorهای Chain را نمایش دهد. citeturn957315search3

اتصال موفق

در خروجی موفق معمولاً چیزی شبیه این دیده می‌شود:

Protocol  : TLSv1.3
Cipher    : TLS_AES_256_GCM_SHA384
Verify return code: 0 (ok)

خطای Chain

unable to get local issuer certificate

معمولاً نشان‌دهنده مشکل Intermediate Certificate یا Chain است.

تست HTTPS با curl

یک ابزار سریع دیگر:

curl -Iv https://example.com

گزینه -v اطلاعات TLS را نمایش می‌دهد.

اگر Handshake شکست بخورد، curl معمولاً پیام فنی دقیق‌تری نسبت به Browser می‌دهد.

بررسی اعتبار Certificate

اگر فایل Certificate روی سرور موجود است:

openssl x509 \
  -in certificate.pem \
  -noout \
  -dates

خروجی:

notBefore=...
notAfter=...

اگر تاریخ notAfter گذشته باشد، Certificate منقضی شده است.

بررسی Certificate آنلاین

برای بررسی Certificate نصب‌شده روی سایت می‌توانید از SSL Checker پویاسازان استفاده کنید.

بررسی Hostname و SAN

Certificate باید Hostname درخواست‌شده را پوشش دهد.

برای مشاهده SAN:

openssl x509 \
  -in certificate.pem \
  -noout \
  -ext subjectAltName

مثلاً اگر سایت با هر دو آدرس زیر باز می‌شود:

example.com
www.example.com

بهتر است هر دو در SAN وجود داشته باشند.

Wildcard Certificate

Certificate زیر:

*.example.com

معمولاً:

shop.example.com
api.example.com

را پوشش می‌دهد، اما:

a.b.example.com

را پوشش نمی‌دهد.

بررسی Certificate Chain

برای مشاهده کامل Chain:

openssl s_client \
  -connect example.com:443 \
  -servername example.com \
  -showcerts

یک Chain معمولاً شامل:

Server Certificate
        ↓
Intermediate CA
        ↓
Root CA

است.

معمولاً Root CA توسط سرور ارسال نمی‌شود، چون Client آن را در Trust Store دارد؛ اما Intermediate Certificate باید به‌درستی ارائه شود.

خطای رایج

verify error:num=20:unable to get local issuer certificate

یا:

verify error:num=21:unable to verify the first certificate

این خطاها معمولاً نشان‌دهنده ناقص بودن Chain هستند. DigitalOcean نیز همین سناریو را یکی از دلایل اصلی شکست Validation معرفی می‌کند. citeturn957315search1

بررسی تطابق Private Key و Certificate

اگر Certificate جدید نصب کرده‌اید ولی Private Key قدیمی باقی مانده باشد، Web Server ممکن است نتواند SSL را Load کند.

روش عمومی مقایسه Public Key:

openssl pkey \
  -in private.key \
  -pubout | sha256sum
openssl x509 \
  -in certificate.crt \
  -pubkey \
  -noout | sha256sum

اگر Hashها یکسان باشند، Certificate و Private Key Match هستند.

برای آموزش کامل این دستورات، مقاله آموزش OpenSSL و مدیریت SSL Certificate را مطالعه کنید.

بررسی TLS Version

نسخه‌های بسیار قدیمی TLS دیگر نباید برای وب عمومی استفاده شوند.

برای تست TLS ۱.۲:

openssl s_client \
  -connect example.com:443 \
  -servername example.com \
  -tls1_2

برای TLS ۱.۳:

openssl s_client \
  -connect example.com:443 \
  -servername example.com \
  -tls1_3

اگر TLS ۱.۲ یا ۱.۳ موفق است ولی Browser خاصی مشکل دارد، Client یا Middleware می‌تواند عامل باشد.

برای Web Serverهای مدرن، پشتیبانی از TLS ۱.۲ و TLS ۱.۳ انتخاب متداول و امن است.

مشکل Cipher Suite

Client و Server باید حداقل یک Cipher Suite مشترک داشته باشند.

اگر Server فقط Cipherهای بسیار قدیمی داشته باشد و Browser آن‌ها را Reject کند، Handshake شکست می‌خورد.

برعکس، Server بسیار محدود نیز ممکن است Client قدیمی را نپذیرد.

DigitalOcean خطای:

ERR_SSL_NO_CYPHER_OVERLAP

را دقیقاً به نبود Cipher مشترک مرتبط می‌داند. citeturn957315search1

مشکل SNI چیست؟

وقتی چند سایت HTTPS روی یک IP میزبانی می‌شوند، Server Name Indication مشخص می‌کند Client برای کدام Hostname Certificate می‌خواهد.

به همین دلیل تست زیر ناقص است:

openssl s_client -connect 192.0.2.10:443

بهتر است:

openssl s_client \
  -connect 192.0.2.10:443 \
  -servername example.com

اگر SNI یا VirtualHost اشتباه باشد، ممکن است Certificate سایت دیگری تحویل داده شود یا Handshake شکست بخورد.

بررسی پورت ۴۴۳

گاهی مشکل Certificate نیست؛ سرویس اشتباهی روی ۴۴۳ Listen می‌کند.

روی Linux:

sudo ss -lntp | grep ':443'

یا:

sudo lsof -i :443

باید مشخص شود کدام Process روی ۴۴۳ در حال Listen است.

مثلاً:

nginx
apache2
httpd
haproxy

اگر یک سرویس Plain HTTP روی پورت ۴۴۳ قرار گرفته باشد، Browser هنگام انتظار TLS ممکن است Protocol Error بدهد.

رفع ERR_SSL_PROTOCOL_ERROR در Nginx

یک Server Block استاندارد HTTPS می‌تواند مشابه زیر باشد:

server {
    listen 443 ssl;
    listen [::]:443 ssl;

    server_name example.com www.example.com;

    ssl_certificate     /etc/ssl/example/fullchain.pem;
    ssl_certificate_key /etc/ssl/example/private.key;

    ssl_protocols TLSv1.2 TLSv1.3;

    root /var/www/example.com;
}

بررسی Syntax

sudo nginx -t

اگر تنظیمات درست بود:

sudo systemctl reload nginx

بررسی Log

sudo tail -f /var/log/nginx/error.log

به پیام‌هایی مانند این توجه کنید:

SSL_CTX_use_PrivateKey failed
key values mismatch
no suitable key share
SSL_do_handshake() failed

اشتباه رایج؛ استفاده از Certificate به‌جای Full Chain

در Nginx معمولاً:

ssl_certificate fullchain.pem;

بهتر از استفاده تنها از Leaf Certificate است.

رفع خطا در Apache

نمونه تنظیم:

<VirtualHost *:443>

    ServerName example.com
    ServerAlias www.example.com

    SSLEngine on

    SSLCertificateFile /etc/ssl/example/fullchain.pem
    SSLCertificateKeyFile /etc/ssl/example/private.key

    SSLProtocol -all +TLSv1.2 +TLSv1.3

</VirtualHost>

بررسی Syntax

در Debian/Ubuntu:

sudo apachectl configtest

در CentOS/RHEL:

sudo httpd -t

در صورت موفقیت:

Syntax OK

بررسی Error Log

sudo tail -f /var/log/apache2/error.log

یا:

sudo tail -f /var/log/httpd/error_log

ERR_SSL_PROTOCOL_ERROR در Cloudflare

اگر سایت پشت Cloudflare قرار دارد، دو TLS Connection وجود دارد:

Visitor
   ↓ TLS
Cloudflare Edge
   ↓ TLS/HTTP
Origin Server

پس مشکل ممکن است در هر کدام از این دو مسیر رخ دهد.

اول وضعیت Edge Certificate را بررسی کنید

اگر دامنه به‌تازگی به Cloudflare اضافه شده باشد، ممکن است Universal SSL هنوز Active نشده باشد.

Cloudflare این موضوع را یکی از اولین مواردی می‌داند که باید در ERR_SSL_PROTOCOL_ERROR بررسی شود. citeturn957315search0

SSL Mode را بررسی کنید

حالت‌های رایج:

  • Flexible
  • Full
  • Full (Strict)

برای سایت Production، در صورت وجود Certificate معتبر روی Origin، Full (Strict) انتخاب مناسب‌تری است.

Origin Certificate را مستقیم تست کنید

اگر IP Origin را می‌دانید:

openssl s_client \
  -connect ORIGIN_IP:443 \
  -servername example.com

با این روش Cloudflare را دور می‌زنید و مشخص می‌کنید مشکل در Origin است یا Edge.

HTTP/۳ و QUIC هم می‌توانند عامل باشند

یکی از نکات مهمی که در راهنماهای قدیمی‌تر معمولاً وجود ندارد، HTTP/۳ است.

HTTP/۳ از QUIC روی UDP استفاده می‌کند و بعضی Networkها، Firewallها یا Security Deviceها ممکن است با آن مشکل داشته باشند.

Cloudflare پیشنهاد می‌کند اگر:

  • خطا Intermittent است؛
  • فقط بعضی کاربران مشکل دارند؛
  • با VPN سایت کار می‌کند؛
  • Refresh چندباره گاهی مشکل را حل می‌کند؛

HTTP/۳ به‌صورت موقت غیرفعال و دوباره تست شود. citeturn957315search0

اگر مشکل با خاموش شدن HTTP/۳ برطرف شد، احتمال دارد UDP/۴۴۳ در مسیر شبکه فیلتر یا به‌درستی پردازش نشود.

رفع خطا در Chrome و سمت کاربر

اگر سایت برای دیگران کار می‌کند اما فقط روی سیستم شما خطا دارد، Server Configuration را تغییر ندهید.

ابتدا سمت Client را بررسی کنید.

۱. ساعت و تاریخ سیستم

Certificate دارای بازه اعتبار است:

Not Before
Not After

اگر ساعت سیستم اشتباه باشد، Certificate ممکن است نامعتبر تشخیص داده شود.

۲. Browser را به‌روزرسانی کنید

Browser قدیمی ممکن است Cipher یا TLS Versionهای مدرن را به‌درستی پشتیبانی نکند.

۳. Incognito Mode را تست کنید

اگر در Incognito سایت باز شد، Extension یا Cache مرورگر می‌تواند علت باشد.

۴. Cache و Cookie را پاک کنید

در Chrome:

Settings
→ Privacy and security
→ Delete browsing data

۵. مرورگر دیگری تست کنید

اگر فقط Chrome مشکل دارد ولی Firefox کار می‌کند، احتمال Server-wide Issue کمتر است.

VPN، Proxy و Antivirus

برخی Antivirusها قابلیت:

HTTPS Scanning
SSL Inspection
Encrypted Traffic Inspection

دارند.

این نرم‌افزارها عملاً میان Browser و Server قرار گرفته و TLS را Intercept می‌کنند.

اگر Implementation آن‌ها با TLS جدید ناسازگار باشد، ممکن است Protocol Error ایجاد شود.

برای تست موقت:

  • VPN را خاموش کنید.
  • Proxy را غیرفعال کنید.
  • HTTPS Inspection را موقتاً خاموش کنید.

اگر مشکل رفع شد، به‌جای غیرفعال نگه داشتن Security Software، تنظیمات یا نسخه آن را اصلاح کنید.

ISP و Network Interference

گاهی مشکل نه از Client است نه Server.

Cloudflare به مواردی مانند:

  • Deep Packet Inspection
  • SSL/TLS Interception Proxy
  • Content Filtering
  • Corporate Firewall
  • مشکلات QUIC/UDP در CGNAT

به‌عنوان عوامل احتمالی اشاره می‌کند. citeturn957315search0

روش تشخیص

همان سایت را روی:

  • اینترنت ثابت
  • Mobile Data
  • VPN

امتحان کنید.

اگر:

بدون VPN = Error
با VPN = OK

احتمال مشکل مسیر ISP یا Network Interference بالا می‌رود.

ERR_SSL_PROTOCOL_ERROR در وردپرس

در WordPress، خود CMS معمولاً TLS Handshake را انجام نمی‌دهد؛ این کار توسط Nginx، Apache، Load Balancer یا CDN انجام می‌شود.

بااین‌حال تنظیمات WordPress می‌توانند باعث Redirectهای اشتباه شوند.

بررسی کنید:

WordPress Address (URL)
Site Address (URL)

هر دو در حالت HTTPS باید صحیح باشند.

مثلاً:

https://example.com

همچنین اگر Cloudflare Flexible همراه با Force HTTPS داخل WordPress استفاده شود، ممکن است Redirect Loop ایجاد شود؛ هرچند آن خطا معمولاً به شکل ERR_TOO_MANY_REDIRECTS دیده می‌شود، نه Protocol Error.

اگر Certificate تازه نصب شده ولی سایت باز نمی‌شود چه کنیم؟

این مسیر را دنبال کنید:

  1. Certificate Date را بررسی کنید.
  2. SAN را بررسی کنید.
  3. Private Key را Match کنید.
  4. Full Chain را بررسی کنید.
  5. Nginx/Apache Syntax را Test کنید.
  6. پورت ۴۴۳ را بررسی کنید.
  7. با OpenSSL Handshake بگیرید.
  8. اگر Cloudflare دارید، Origin را مستقیم تست کنید.

اگر نیاز به گواهی جدید دارید، انواع گواهی را می‌توانید در صفحه خرید SSL پویاسازان بررسی کنید.

تشخیص خطا بر اساس خروجی OpenSSL

خروجیاحتمال مشکل
Verify return code: 0Certificate Chain سالم
unable to get local issuer certificateIntermediate ناقص
certificate has expiredCertificate منقضی
no peer certificate availableTLS Server پاسخ نداده
wrong version numberProtocol یا Port اشتباه
handshake failureTLS/Cipher/Certificate Config
no shared cipherCipher مشترک وجود ندارد

چطور از تکرار SSL Protocol Error جلوگیری کنیم؟

Certificate Expiration را مانیتور کنید

برای بررسی اینکه Certificate حداقل ۳۰ روز دیگر اعتبار دارد:

openssl x509 \
  -in certificate.pem \
  -checkend 2592000 \
  -noout

Certificate آنلاین را مانیتور کنید

echo | openssl s_client \
  -connect example.com:443 \
  -servername example.com \
  2>/dev/null | \
openssl x509 -noout -enddate

بعد از هر تغییر Configuration تست بگیرید

برای Nginx:

nginx -t

برای Apache:

apachectl configtest

قبل از Reload کردن Production، همیشه Syntax Test انجام دهید.

چک‌لیست نهایی رفع ERR_SSL_PROTOCOL_ERROR

  • DNS دامنه را بررسی کنید.
  • پورت ۴۴۳ را تست کنید.
  • Certificate Expiration را بررسی کنید.
  • SAN و Hostname را بررسی کنید.
  • Certificate Chain را کنترل کنید.
  • Private Key و Certificate را Match کنید.
  • TLS ۱.۲ و TLS ۱.۳ را تست کنید.
  • Cipher Suite را بررسی کنید.
  • SNI را فراموش نکنید.
  • Nginx یا Apache Error Log را بررسی کنید.
  • در Cloudflare، Edge و Origin را جداگانه تست کنید.
  • HTTP/۳ را در خطاهای Intermittent بررسی کنید.
  • VPN، Proxy و Antivirus را تست کنید.
  • سایت را از Network دیگری امتحان کنید.

سوالات متداول درباره ERR_SSL_PROTOCOL_ERROR

ERR_SSL_PROTOCOL_ERROR یعنی چه؟

یعنی Browser نتوانسته TLS Handshake را با Server کامل کند و در نتیجه ارتباط HTTPS امن تشکیل نشده است.

چرا این خطا فقط در Chrome نمایش داده می‌شود؟

ممکن است Cache، Extension، TLS State یا تنظیمات امنیتی Chrome عامل باشند. اگر سایت در Browserهای دیگر کار می‌کند، ابتدا Client را بررسی کنید.

آیا Certificate منقضی باعث ERR_SSL_PROTOCOL_ERROR می‌شود؟

بله، Certificate نامعتبر یا منقضی می‌تواند یکی از علل شکست اتصال TLS باشد.

چطور Certificate سایت را بررسی کنم؟

می‌توانید از دستور زیر استفاده کنید:

openssl s_client \
  -connect example.com:443 \
  -servername example.com

یا از SSL Checker پویاسازان استفاده کنید.

آیا Cloudflare می‌تواند باعث این خطا شود؟

بله. فعال نبودن Edge Certificate، بعضی مشکلات TLS، HTTP/۳ یا ناسازگاری مسیر شبکه می‌توانند باعث خطا شوند.

چرا سایت با VPN باز می‌شود ولی بدون VPN نه؟

این رفتار می‌تواند نشانه دخالت ISP، DPI، Routing، QUIC یا TLS Interception در مسیر شبکه باشد.

آیا پاک کردن Cache همیشه مشکل را حل می‌کند؟

خیر. Cache فقط یکی از دلایل Client-side است. اگر مشکل روی Server باشد، پاک کردن Cache هیچ اثری ندارد.

آیا تغییر TLS ۱.۳ به TLS ۱.۲ راه‌حل است؟

نه به‌عنوان راه‌حل دائمی. TLS ۱.۳ پروتکل مدرن و امنی است. اگر مشکل فقط با TLS ۱.۳ دیده می‌شود، باید Middleware، Antivirus، Proxy یا Network Device ناسازگار شناسایی شود.

فرق ERR_SSL_PROTOCOL_ERROR با ERR_CERT_DATE_INVALID چیست؟

ERR_CERT_DATE_INVALID مشخصاً به اعتبار زمانی Certificate مربوط است؛ اما ERR_SSL_PROTOCOL_ERROR عمومی‌تر است و می‌تواند از بخش‌های مختلف TLS Handshake ناشی شود.

فرق ERR_SSL_PROTOCOL_ERROR با ERR_SSL_VERSION_OR_CIPHER_MISMATCH چیست؟

خطای Version/Cipher معمولاً دقیق‌تر به نبود نسخه TLS یا Cipher Suite مشترک اشاره می‌کند، در حالی که Protocol Error دامنه گسترده‌تری از مشکلات Handshake را پوشش می‌دهد.

آیا این خطا می‌تواند از پورت ۴۴۳ باشد؟

بله. اگر پورت ۴۴۳ بسته باشد یا سرویس غیر TLS روی آن Listen کند، Handshake ممکن است شکست بخورد.

آیا WordPress باعث ERR_SSL_PROTOCOL_ERROR می‌شود؟

خود WordPress معمولاً TLS را مدیریت نمی‌کند. بیشتر این خطاها در Web Server، CDN، Certificate یا Network رخ می‌دهند.

جمع‌بندی

رفع خطای ERR_SSL_PROTOCOL_ERROR زمانی ساده‌تر می‌شود که به‌جای امتحان کردن تصادفی راه‌حل‌ها، مسیر TLS را مرحله‌به‌مرحله بررسی کنید.

اگر خطا فقط برای یک کاربر دیده می‌شود، ابتدا Browser، ساعت سیستم، VPN، Antivirus و Network را بررسی کنید. اگر همه کاربران مشکل دارند، تمرکز را روی Server، Certificate، Chain، SNI، TLS Version، Cipher Suite و پورت ۴۴۳ بگذارید.

برای سرورهای Linux، دستور:

openssl s_client \
  -connect example.com:443 \
  -servername example.com

یکی از مهم‌ترین ابزارهای تشخیص مشکل است. این دستور مشخص می‌کند TLS Handshake انجام می‌شود یا نه، چه Certificateی ارسال می‌شود، Chain چه وضعیتی دارد و چه Protocol/Cipherی انتخاب شده است. DigitalOcean نیز همین ابزار را به‌عنوان بخش اصلی تشخیص خطا پیشنهاد می‌کند. citeturn957315search1

اگر از Cloudflare استفاده می‌کنید، Edge و Origin را جداگانه بررسی کنید و در مشکلاتی که فقط برخی کاربران یا برخی شبکه‌ها را درگیر می‌کنند، HTTP/۳، TLS ۱.۳، DPI و Network Interference را نیز در نظر بگیرید. Cloudflare به‌طور مشخص این موارد را در راهنمای فعلی ERR_SSL_PROTOCOL_ERROR مطرح می‌کند. citeturn957315search0

برای بررسی سریع Certificate می‌توانید از SSL Checker و برای تست پورت از Port Checker پویاسازان استفاده کنید. همچنین اگر قصد تهیه یا تمدید Certificate دارید، صفحه خرید SSL در دسترس است.

منابع پیشنهادی

طبقه بندی شده در:

SSL و گواهی‌های امنیتی,

آخرین به روز رسانی: ۲۱ شهریور ۱۴۰۵