خطای 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 چیست؟
- TLS Handshake چگونه شکست میخورد؟
- چطور بفهمیم مشکل از مرورگر است یا سرور؟
- دلایل رایج ERR_SSL_PROTOCOL_ERROR
- چک سریع قبل از عیبیابی تخصصی
- تست SSL با OpenSSL
- بررسی HTTPS با curl
- بررسی Certificate و تاریخ انقضا
- بررسی Hostname و SAN
- بررسی Certificate Chain
- بررسی تطابق Private Key و Certificate
- بررسی TLS Version
- مشکل Cipher Suite
- مشکل SNI
- بررسی پورت ۴۴۳
- رفع خطا در Nginx
- رفع خطا در Apache
- ERR_SSL_PROTOCOL_ERROR در Cloudflare
- تأثیر HTTP/۳ و QUIC
- راهحلهای سمت مرورگر
- VPN، Proxy و Antivirus
- مشکل ISP و شبکه
- این خطا در وردپرس
- جلوگیری از تکرار خطا
- چکلیست نهایی
- سوالات متداول
- جمعبندی
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 قرار میدهد. citeturn957315search0
TLS Handshake چگونه شکست میخورد؟
برای فهم بهتر خطا، ابتدا مسیر Handshake را مرور کنیم.
- مرورگر یک ClientHello ارسال میکند.
- نسخههای TLS و Cipher Suiteهای قابل پشتیبانی را اعلام میکند.
- سرور یک ServerHello برمیگرداند.
- Certificate سرور ارسال میشود.
- مرورگر Certificate Chain و Hostname را بررسی میکند.
- دو طرف Key Exchange را انجام میدهند.
- 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 دخالت میکند
- ساعت دستگاه اشتباه است
چک سریع قبل از عیبیابی تخصصی
ابتدا این موارد را بررسی کنید:
- آیا دامنه به IP درست Resolve میشود؟
- آیا پورت ۴۴۳ باز است؟
- آیا Certificate منقضی نشده؟
- آیا Certificate دامنه را پوشش میدهد؟
- آیا Nginx یا Apache در حال اجراست؟
- آیا 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 را نمایش دهد. citeturn957315search3
اتصال موفق
در خروجی موفق معمولاً چیزی شبیه این دیده میشود:
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 معرفی میکند. citeturn957315search1
بررسی تطابق Private Key و Certificate
اگر Certificate جدید نصب کردهاید ولی Private Key قدیمی باقی مانده باشد، Web Server ممکن است نتواند SSL را Load کند.
روش عمومی مقایسه Public Key:
openssl pkey \
-in private.key \
-pubout | sha256sumopenssl 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 مشترک مرتبط میداند. citeturn957315search1
مشکل 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_logERR_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 بررسی شود. citeturn957315search0
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/۳ بهصورت موقت غیرفعال و دوباره تست شود. citeturn957315search0
اگر مشکل با خاموش شدن 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
بهعنوان عوامل احتمالی اشاره میکند. citeturn957315search0
روش تشخیص
همان سایت را روی:
- اینترنت ثابت
- 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 تازه نصب شده ولی سایت باز نمیشود چه کنیم؟
این مسیر را دنبال کنید:
- Certificate Date را بررسی کنید.
- SAN را بررسی کنید.
- Private Key را Match کنید.
- Full Chain را بررسی کنید.
- Nginx/Apache Syntax را Test کنید.
- پورت ۴۴۳ را بررسی کنید.
- با OpenSSL Handshake بگیرید.
- اگر Cloudflare دارید، Origin را مستقیم تست کنید.
اگر نیاز به گواهی جدید دارید، انواع گواهی را میتوانید در صفحه خرید SSL پویاسازان بررسی کنید.
تشخیص خطا بر اساس خروجی OpenSSL
| خروجی | احتمال مشکل |
|---|---|
Verify return code: 0 | Certificate Chain سالم |
unable to get local issuer certificate | Intermediate ناقص |
certificate has expired | Certificate منقضی |
no peer certificate available | TLS Server پاسخ نداده |
wrong version number | Protocol یا Port اشتباه |
handshake failure | TLS/Cipher/Certificate Config |
no shared cipher | Cipher مشترک وجود ندارد |
چطور از تکرار SSL Protocol Error جلوگیری کنیم؟
Certificate Expiration را مانیتور کنید
برای بررسی اینکه Certificate حداقل ۳۰ روز دیگر اعتبار دارد:
openssl x509 \
-in certificate.pem \
-checkend 2592000 \
-nooutCertificate آنلاین را مانیتور کنید
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 نیز همین ابزار را بهعنوان بخش اصلی تشخیص خطا پیشنهاد میکند. citeturn957315search1
اگر از Cloudflare استفاده میکنید، Edge و Origin را جداگانه بررسی کنید و در مشکلاتی که فقط برخی کاربران یا برخی شبکهها را درگیر میکنند، HTTP/۳، TLS ۱.۳، DPI و Network Interference را نیز در نظر بگیرید. Cloudflare بهطور مشخص این موارد را در راهنمای فعلی ERR_SSL_PROTOCOL_ERROR مطرح میکند. citeturn957315search0
برای بررسی سریع Certificate میتوانید از SSL Checker و برای تست پورت از Port Checker پویاسازان استفاده کنید. همچنین اگر قصد تهیه یا تمدید Certificate دارید، صفحه خرید SSL در دسترس است.
