به احتمال زیاد شما از آن دستهای هستید که هیچ خوششان نمیآید کاربران موقع ورود به سایتشان هشدار «اتصال شما ایمن نیست» را ببینند و برگردند. برای همین گواهی SSL را برای سایتتان فعال کرده یا قصد دارید فعال کنید. اما حس میکنید SSL کمی با شما سر ناسازگاری دارد و هرکاری که بکنید ادایی از خودش در میآورد و ارور میدهد یا نمیدانید از بین انواع SSL کدام را باید نصب کنید. باید همینجا به شما بگوییم نیازی نیست نگران شوید. برخی از این خطاها کاملاً طبیعی هستند و همهشان هم راهحل دارند. بنابراین تا انتهای مطلب همراه ما باشید تا روشهای رفع خطاهای رایج SSL در وردپرس را بررسی کنیم و کدهای مورد نیاز را در اختیارتان قرار دهیم.
مروری بر تعریف SSL
قبل از اینکه خطاها را بررسی کنیم بهتر است باهم مروری سریع به پاسخ سوال SSL چیست داشته باشیم.
گواهینامه امنیتی SSL مخفف عبارت Secure Socket Layer است که پروتکلی امنیتی برای رمزگذاری دادههایی است که بین سرور و کاربر منتقل میشود. |
برای آشنایی بیشتر با این مفهوم میتوانید ویدیو زیر را تماشا کنید.
انواع خطای SSL + روش رفع خطا
نصب گواهی 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» اضافه کنید.
پیشنهاد خواندن: «وردپرس چیست؟»
۳) خطای 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 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 On
RewriteCond %{}
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
[/ht_message]</pre>
انتقال سایت وردپرس به SSL/HTTPS ممکن است کار بزرگ و عجیبی به نظر برسد، اما اگر درست انجام شود، بسیار ساده است.
چرا SSL سایت من کار نمی کند؟
اگر هیچ کدام از خطاهای بالا را بعد از نصب SSL دریافت نکردهاید ممکن است مشکلی وجود داشته باشد، مثلاً امکان دارد که این فرآیند در سرورهای هاست سایت شما تکمیل نشده باشند. که اگر این طور باشد لازم است نسخهٔ قبلی را حذف نصب کنید و دوباره شروع کنید. خبر خوب این است که کاربرانی که از لیموهاست سرویس میزبانی تهیه میکنند نیازی نیست نگران دغدغههای مربوط به نصب SSL باشند، چراکه لیموهاست روی سرویسهایش SSL رایگان نصب کرده و در اختیار کاربران قرار میدهد.
در این مقاله روشهای رفع خطاهای رایج SSL در وردپرس را بررسی کردیم و راهحلهایی با کدگذاری و با استفاده از افزونه را ارائه کردیم. هر سوالی که در این باره در ذهن دارید را میتوانید از بخش نظرات زیر همین پست از ما بپرسید و پاسخ بگیرید. اگر تجربهای در این زمینه دارید نیز میتوانید با سایر کاربران به اشتراک بگذراید.
دیدگاه ها
اولین نفری باشید که دیدگاه خود را ثبت می کنید