وقتی وارد سایتی میشوید و مرورگر بهجای نمایش محتوا، پیغامهایی مثل «Your connection is not private» یا «SSL certificate error» نشان میدهد، یعنی مشکلی در SSL وجود دارد.
خطای SSL سوای اینکه هم برای بازدیدکنندگان سایت، هم برای صاحبان وبسایتها آزاردهندهست، میتواند باعث کاهش اعتماد کاربران، افت رتبه در گوگل و حتی از دست رفتن ترافیک سایت شود!
در این مقاله به زبان ساده بررسی میکنیم خطای SSL چیست، چه انواعی دارد و چطور میتوان هرکدام را رفع کرد.
مروری بر تعریف SSL
قبل از اینکه خطاها را بررسی کنیم بهتر است باهم مروری سریع به پاسخ سوال SSL چیست داشته باشیم. گواهینامه امنیتی SSL مخفف عبارت Secure Socket Layer است که پروتکلی امنیتی برای رمزگذاری دادههایی است که بین سرور و کاربر منتقل میشود.
برای آشنایی بیشتر با این مفهوم میتوانید ویدیو زیر را تماشا کنید.
خطای SSL چیست؟
زمانی که مرورگر نتواند اعتبار گواهی SSL را تأیید کند یا در برقراری ارتباط امن با سرور دچار مشکل شود، خطای SSL رخ میدهد. علت این خطا میتواند انقضای گواهی، نصب نادرست SSL، ناسازگاری پروتکلها یا تنظیمات اشتباه HTTPS باشد.
پس خطای SSL هشداری از سوی مرورگر است و بیان میکند که ارتباط میان کاربر و وبسایت ایمن نیست.
همین هشدار باعث میشود کاربران از ادامه بازدید خود صرفنظر کنند و این اتفاق، علاوه بر تأثیر منفی بر تجربه کاربری، میتواند بر رتبه سایت در نتایج جستوجو نیز اثر بگذارد.
| ⭐ محتوای مرتبط: علت خطای Not Secure در گوگل کروم چیست؟ + روشهای رفع آن |
انواع خطای SSL + روش رفع خطا
در این بخش ۵ مورد از خطاهای رایج SSL که صاحبان سایتها با آن مواجه میشوند را بررسی میکنیم و روشهای رفع هر یک را آموزش میدهیم.
۱) خطای parts of this page are not secure, such as images
اگر پیام parts of this page are not secure, such as images را دریافت میکنید مشکل از گواهی SSL است. برای رفع آن میتوانید از روشهای زیر استفاده کنید.
۳ روش رفع خطای parts of this page are not secure
اگر بعد از فعالسازی SSL با ارور parts of this page are not secure, such as images در مرورگر روبرو شدید. میتوانید به راحتی طبق دستورالعملهای زیر مشکل را برطرف کنید.
روش اول: قبل از هر کاری از قسمت تنظیمات > عمومی بررسی کنید که آدرس سایت حتماً با https شروع شده باشد. (مانند تصویر زیر)
بعد از چک کردن تنظیمات عمومی بهتر است وارد phpmyadmin در هاست شویم و بعد از انتخاب دیتابیس مورد نظر، جدول option را سرچ کنیم. در این جدول بررسی کنید همه مقدارهای siteurl و home با https وارد شده باشند.
روش دوم: اگر Force ssl with https redirect روی دامنهتان غیرفعال باشد، ممکنه باعث به وجود آمدن این خطا شود. در هاست سیپنل کافیست از قسمت Domains گزینه Force HTTPS Redirect را فعال کنید تا این ارور ناپدید شود.
برای فعالسازی این گزینه در دایرکت ادمین کافیست به قسمت Domain Setaup بروید، روی دامنه مورد نظر کلیک کنید و در صفحه باز شده تیک گزینه Force SSL with https redirect را بزنید.
روش سوم: آخرین موردی که باید بررسی کنید تصاویر یا محتوایی است که روی سایتتان هنوز با http فراخوانی میشوند. برای حل این مشکل کافیست از افزونههایی مثل Really Simple SSL استفاده کنید تا همه محتواهای http را به https تبدیل کند.
۲) ارور Mixed Content
ممکن است بلافاصله پس از نصب گواهی SSL به این هشدار بربخورید و فکر کنید مشکل بزرگی سر راهتان قرار گرفته، که خب این طور نیست. این مشکل خیلی رایج است و برای وبسایتهای زیادی رخ میدهد. ممکن است برخی از فایلهای سایتتان همچنان با HTTP فراخوانی و خوانده شوند. که خب از دو روش دستی و یا به کمک افزونه میتوانید این مشکل را در وردپرس حل کنید.
روش رفع خطای Mixed Content
برای رفع این خطا دو راه دارید:
راه حل اول: نصب افزونه Really Simple SSL
برای رفع این ارور دو راه دارید. یک راه کوتاه که به کمک نصب افزونه انجام میشود و یک راه نسبتاً طولانیتر که باید دستی انجام شود. اگر حوصله ندارید بروید سراغ مراحل تنظیمات دستی میتوانید افزونهٔ Really Simple SSL را نصب کنید و تمام. این افزونه منتظر است شما رخصت بدهید تا بدون هیچ اقدام دیگری تمام مشکلات SSL را برایتان حل کند. فقط یادتان نرود که بعد از حل و فصل شدن ماجرا، افزونه و فایلهای اضافی که در دیتابیس ذخیره میکند را حذف کنید.
راه حل دوم: تنظیمات دستی رفع خطای Mixed Content
اگر تصمیم گرفتهاید این ارور سیستم مدیریت محتوا وردپرس را با تنظیمات دستی برطرف کنید، باید بدانید که یک عیبیابی اساسی را در پیش دارید و این یعنی پیش از هر کاری یک فول بک آپ درست و حسابی از سایتتان بگیرید.
- در وهله اول چک کنید و ببینید آیا اصلاً سایتتان از پروتکل HTTPS استفاده میکند یا نه.
- به تنظیمات عمومی وردپرس یا general settings بروید.
- آدرس سایتتان را در کادر WordPress Adress (URL) بررسی کنید.
- آیا با HTTP شروع میشود؟ HTTP را به HTTPS تغییر دهید.
پس از انجام این کار، باید سایتتان را بررسی کنید و به روش دستی URL های قدیمی HTTP را در دیتابیس سیستم مدیریت محتوا وردپرس پیدا کنید و آنها را با URL های جدید HTTPS جایگزین کنید. راه سادهتری هم وجود دارد. میتوانید افزونهٔ
Better Search Replace را نصب کنید و با رفتن به Tools > Better Search Replace به صفحهی تنظیمات پلاگین بروید. سپس URL وب سایت HTTP فعلی را در قسمت «Search field» اضافه کنید و سپس آدرس وب سایت را با HTTPS در قسمت «Replace field» اضافه کنید.
| ⭐ محتوای مرتبط: انواع گواهینامه SSL؛ کدامیک مناسب شماست؟! |
۳) خطای Too Many Redirects
بعد از تغییر HTTPها به HTTPS به احتمال زیاد با هشدار ریدایرکت بیش از حد مواجه خواهید شد.
روش رفع ارور Too Many Redirects
هشدار را دریافت کردهاید، میتوانید مسئله را با قراردادن یک کد کوچک در فایل wp-config.php حل کنید.
define('FORCE_SSL_ADMIN', true);
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
$_SERVER['HTTPS']='on';
۴) خطای ریدایرکت HTTP به HTTPS
شاید این طور به نظر برسد که وردپرس انقدر شعور دارد که با همان اقدامات اولیه، تمام HTTPها به HTTPS تبدیل شدهاند. اما در کمال احترام باید بگوییم که این طور نیست. هنوز تمام HTTPهایتان به HTTPS تبدیل نشدهاند و خودتان باید به صورت دستی دستور این کار را به وردپرس بدهید. البته اگر افزونهٔ Really Simple SSL که ابتدای متن معرفی کردیم را نصب و فعال کرده باشید خودش این کار را برایتان انجام داده است.
روش رفع ارور هنگام ریدایرکت HTTP به HTTPS
برای این ریدایرکت بایستی کد زیر را کپی کرده و در فایل .htaccess قرار دهید:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
| ⭐ محتوای مرتبط: تفاوت SSL و TLS چیست؟ (مقایسه کامل) |
۵) ارور SSL certificate name mismatch
اگر مرورگر شما ارور شبیه به SSL certificate name mismatch را نمایش میدهد معنایش این است که این طور به نظر میرسد که گواهی SSL شما برای آدرس دامنهٔ دیگری ثبت شده است.
اگر از نام دامنه داخلی استفاده میکنید اما گواهی امنیتی شما برای نام عمومی ثبت و فعال شده است، یا مثلاً دامنه را از منبع دیگری جز ارائهدهندهٔ گواهی امنیتی خریداری کردهاید، امکان دارد به این هشدار برخورد کنید. ممکن است گواهی امنیتی را فقط برای نام دامنه یا فقط بدون WWW خریداری کرده باشید.
مثلاً برای یکی از دو مورد example.com یا www.example.com گواهی SSL داشته باشید. در حالی که هردوی این آدرسها به یک منبع میرسند اما گواهی امنیتی شما به یکی از این دو اختصاص پیدا کرده است.
روش رفع خطای SSL certificate name mismatch
در هر صورت، عامل خطا هرچه که باشد، میتوانید با وارد کردن کد زیر به فایل پیکربندی آپاچی آن را برطرف کنید:
<pre class="wp-block-code"><IfModule mod_rewrite.c>RewriteEngine OnRewriteCond %{}RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]</IfModule>[/ht_message]</pre>
جمعبندی و حرفهای پایانی
اگر هیچ کدام از خطاهای بالا را بعد از نصب SSL دریافت نکردهاید ممکن است مشکلی وجود داشته باشد، مثلاً امکان دارد که این فرآیند در سرورهای هاست سایت شما تکمیل نشده باشند. که اگر این طور باشد لازم است نسخهٔ قبلی را حذف نصب کنید و دوباره شروع کنید.
خبر خوب این است که کاربرانی که از لیموهاست سرویس میزبانی تهیه میکنند نیازی نیست نگران دغدغههای مربوط به نصب SSL باشند، چراکه لیموهاست روی سرویسهایش SSL رایگان نصب کرده و در اختیار کاربران قرار میدهد.
اگر به راهنمایی بیشتری نیاز دارید، میتوانید در بخش نظرات با ما در ارتباط باشید و سوالاتتان را بپرسید.








دیدگاه ها
اولین نفری باشید که دیدگاه خود را ثبت می کنید