رفع مشکل سبز نشدن گواهی ssl در وردپرس
استفاده از گواهی SSL بر روی سایت، این امکان را به شما خواهد داد تا بتوانید از پروتکل امن HTTPS بر روی سایت خود استفاده کنید. استفاده از گواهینامه امنیتی SSL دارای مزایای مختلفی ایت که مهمترین آنها بالا بردن امنیت سایت و اعتماد کاربران است.
اما در این بین برخی اوقات همچون انتقال سایت به هاست دیگر مشکلاتی برای این گواهینامه امنیتی رخ میدهد که اصطلاحا آن را به عنوان سبز نشدن گواهی SSL در وردپرس میشناسیم؛ زمانی که در حال طراحی صفحات سایت خود هستید میبینید که گواهی SSL در حالت سبز و تایید شده نمایش داده نمیشود. در نسخه جدید مرورگرها زمانی که خطایی رخ دهد پروتکل HTTPS در گوگل کروم دارای یک خط مورب قرمز و در فایرفاکس نیز دارای یک آیکون اخطار است.
چنین حالتی نشان از این دارد که یا کانفیگ اشتباهی هنگام نصب SSL در سی پنل رخ داده یا اینکه در طراحی صفحات به دلیل ایجاد ارور mixed content گواهی SSL شما با خطا مواجه شده است. در ادامه این مقاله از وبلاگ سون هاست به چرایی رخ دادن این مشکل پرداخته و دو روش برای رفع مشکل ssl در وردپرس و هر نوع سایتی را به شما معرفی خواهم نمود.
چرا باید از گواهینامه امنیتی SSL استفاده کنیم؟
یکی از نکات اولیه برای بالا بردن امنیت سایت استفاده از پروتکل امنیتی HTTPS است تا اطلاعاتی که بین کاربران رد و بدل میشوند به صورت رمزگذاری شده باشند. ممکن است بپرسید که منظور از رمزگذاری چیست و اصلا استفاده از این پروتکل چگونه به امنیت سایت کمک میکند؟ بیایید از یک مثال شروع کنیم.
فرض کنید شما قرار است اطلاعات هویتی خود را همچون شماره ملی، تلفن همراه و… را در یک سایت وارد کنید. زمانی که خبری از SSL نباشد، هنگام بارگذاری اطلاعات بر روی سایت و دریافت اطلاعاتی دیگر که مناسب با آن وجود دارد، کلیه دادهها از طریق رشتههای متنی مشخص شده رد و بدل خواهند شد.
در نتیجه اطلاعات مهم هویتی شما به سادگی قابل خواندن بوده و میتوان با شنود ترافیک به آنها دسترسی داشت که شرکتهای اینترنتی میتوانند مثال خوبی باشند. به این فکرک نید که از یک شرکت دولتی همچون مخابرات یا شرکت خصوصی دیگری مثل آسیاتک خط اینترنتی را خریداری کردید. حال هر دادهای که شما رد و بدل کنید توسط این شرکتها به سادگی قابل دنبال کردن و شنود خواهد بود.
اما زمانی که این اطلاعات بر روی بستر HTTPS رد و بدل شوند در واقع یک کلید کد گذاری برای آنها در نظر گرفته شده است. تا زمانی که چنین شرکتهایی این کلدها را نداشته باشند قادر به خواندن دادهها نسیتند. این کلید نیز خصوصی بوده و در اختیار هر کسی قرار ندارد. در نتیجه اطلاعات در یک محیط کاملا امن و ایزوله رد و بدل خواهند شد. به زبان ساده مثل این خواهد بود که شما از زبانهایی مانند زبان زرگری برای رد و بدل کردن اطلاعات استفاده کنید؛ در حالی که فردی که تلاش دارد شنود کند، این زبان را بلد نیست.
مزایای استفاده از گواهی ssl در وب سایت
- افزایش امنیت سایت و کاربر
- سبز شدن آیکون قفل کنار آدرس سایت در نوار آدرس مرورگر
- رفع خطای your connection is not secure
- امکان گرفتن نماد ۲ ستاره در صورت داشتن SSL(البته این حالت برای زمانی است که از SSL پولی استفاده کنید)
- افزایش رتبه سئو سایت نزد گوگل و دیگر موتورهای جستجو
- افزایش اعتماد کاربران و مشتریان به سایت شما
- و…
تمام سرویسهای میزبانی ارائه شده در سون هاست از جلمه هاست وردپرس سون هاست دارای اس اس ال رایگان هستند که میتوانید از آن به راحتی استفاده کنید.
چرا ssl من بعد از فعال سازی سبز نمی شود؟
دلایل زیادی برای سبز نشدن SSL در وردپرس و به نوعی نمایش آیکون خطا در کنار آدرس HTTPS سایت وجود دارد که یکی از رایجترین آنها هنگام آدرسی دهی اشتباه به فایلهای تصویری، استایل و js رخ میدهد که عموما در ابزارها آنلاین و خود مرورگز با خطای Mixed content نمایش داده میشود.
همه ما عادت کردهایم که آدرس فایلها را در سایت خود بدون ذکر دقیق پروتکل https ذکر کنیم، در نتیجه وقتی در حال طراحی یک صفحه با صفحه سازهایی مانند المنتور یا ویژوال کامپوزر هستید، ممکن است اشتباها به جای اینکه آدرس فایلها را به صورت کامل با HTTPS وارد کنید، صرفا با http باشند یا اینکه حتی با www و یا نام دامنه شروع شوند.
در این صورت زمانی که سورس صفحه را بررسی کنید خواهید دید که تعدادی آدرس در صفحه به صورت http:// قرار دارد که همین مسئله باعث بروز ارور mixed content در سایت خواهد شد.
نکته: یکی دیگر از دلایلی که باعث بروز خطای mixed content و سبز نشدن ssl در وردپرس میشود، استفاده از افزونههایی است که به صورت استاندارد کد نویسی نشده است.
به عنوان نمونه ممکن است از یک افزونه برای تغییر فونت در وردپرس یا افزونهای برای قرار دادن دکمه در نوشته استفاده کرده باشید. در حالی که این افزونه باید از توابع استاندارد برای آدرس دهی فایلهای فونت یا فونت آیکون استفاده نکرده است و به جای اینکه دادهها با پروتکل امن HTTPS و مطابق با تنظیمات سایت شما لود شوند، همگی به صورت http لود میشوند. در نتیجه همین مسئله کوچک باعث بروز خطای SSL در وردپرس میشود.
پس اگر برای اولین بار است که صفحهای از سایت شما یا کل صفحاتتان با این ارور مواجه است کافی است در صفحه راست کلیک کرده و گزینه view page source را انتخاب کنید. یا اینکه با زدن دکمههای ترکیبی CTRL + U این کار را انجام دهید.
سپس در صفحه باز شده که کدهای HTML صفحه به شما نمایش داده میشود، با زدن دکمههای CTRL + F با انتخاب Find in pages در منوی مرورگر به دنبال عبارت http://
در سورس صفحه بگردید. مطمئنا تعدادی آدرس را پیدا خواهید کرد که بدون HTTPS در صفحه قرار دارند که با بررسی آنها میتوانید متوجه شوید مشکل از کجاست تا آن را برطرف کنید.
چگونه مشکل سبز نشدن ssl را رفع کنیم؟
راه استاندارد برای برطرف کردن مشکل SSL در وردپرس و هر سایت دیگری است است که ساختار آدرسها را در صفحات خود به صورت درست اصلاح کنید تا همگی بر روی پروتکل امن HTTPS قرار داشته باشند. اما اگر به هر دلیل دانش این کار را ندارید، میتوانید به کمک دو روش زیر که شامل استفاده از افزونه و کد htaccess. است این مشکل را رفع کنید.
روش اول: استفاده از افزونه Really Simple SSL
در این روش کافی است این افزونه محبوب را روی سایت خود نصب کنید. برای این منظور میتوانید روی دکمه زیر کلیک کرده و به صفحه دانلود افزونه مراجعه کنید. روشهای مختلفی برای نصب افزونه در وردپرس را در وبلاگ سون هاست معرفی کردیم که میتوانید با نصب از طریق پیشخوان یا آپلود فایل دانلودی افزونه از مخزن وردپرس، این افزونه را روی سایت خود نصب کنید.
دانلود افزونه Really Simple SSL
پس از نصب افزونه مشابه تصویر زیر منویی با عنوان SSL در بخش تنظیمات پیشخوان وردپرس شما افزوده خواهد شد. روی این منو کلیک کنید تا به صفحه تنظیمات افزونه وارد شوید.
سپس طبق توضیحاتی که در ادامه داده میشود تنظیمات افزونه را انجام دهید:
- برای اینکه محتوای برخی دادهها به صورت ترکیبی هم از پروتکل http و هم https نمایش داده نشوند این گزینه را فعال کنید.
- با فعال کردن این گزینه تغییر مسیر به صورت ۳۰۱ در وردپرس فعال خواهد شد. در این صورت کاربرانی که به سایت با پروتکل http مراجعه کنند به صورت خودکار به آدرس صفحه با پروتکل https هدایت خواهند شد. این موضوع همچنین از نظر سئو نیز اهمیت دارد تا اعتبارت صفحات را به آدرس سایت با پروتکل امن https منتقل کنید. پیش از این این موضوع را در مقاله ریدایرکت ۳۰۱ وردپرس توضیح دادم که پیشنهاد میکنم مطالعه کنید.
- با فعال کردن این گزینه ریدارکت ۳۰۱ بر روی فایل htaccess. نیز ایجاد خواهد شد. این گزینه با گزینه قبلی تفاوتی که دارد در این است که در گزینه قبل ریدایرکتها توسط php و خود وردپرس هندل میشوند در حالی که در این گزینه این کار توسط فایل htaccess. صورت میگیرد. لزومی ندارد که هر دو گزینه فعال باشند؛ این گزینه نسبت به قبلی از اهمیت بالاتری برخوردار است و بهینهتر است.
- فعال کردن این گزینه هم درست برای زمانی است که خطای mixed content در سایت ایجاد شده است. این گزینه را حتما فعال کنید تا آدرس فایلهای استفاده شده در سورس سایت به صورت اجباری با https لود شوند.
- روی دکمه ذخیره کلیک کنید.
در صورتی که محدودیتی روی ویرایش فایل htaccess. ایجاد نکرده باشید و قابلیت نوشتن توسط افزونه را داشته باشند کدهایی به آن اضافه و اصلاح خواهد شد. اکنون سایت شما به درستی ریدایرکت شده و ارور mixed content نیز رفع شده است.
روش دوم: افزودن کد به فایل htaccess.
در روش قبلی ما به کمک افزونه و مطابق با تنظیمات سرور کدهایی را به فایل htaccess. اضافه کردیم. اما اگر به هر دلیلی کدها توسط افزونه اعمال نشده بود و با آن مشکل داشتید میتوانید با افزودن دستی کدها به این فایل نیز این کار را انجام دهید.
برای این منظور مشابه تصویر زیر وارد هاست خود شده و روی گزینه File Manager کلیک کنید.
در این صورت مشابه تصویر زیر وارد فایل منیجر هاست خود خواهید شد. اما چون احتمالا گزینه نمایش فایلهای مخفی در هاست سی پنل فعال نیست، لازم است که با کلیک روی گزینه SETTINGS در بالای صفحه گزینه show hidden files را فعال کنید تا فایل به شما نمایش داده شود.
سپس فایل htaccess. را انتخاب کرده و با راست کلیک کردن یا انتخاب گزینه EDIT از منوی بالا صفحه ویرایش این فایل را باز کنید.
هشدار: پیش از اینکه بلایی سر این فایل بیاورید، یک بار آن را دانلود کنید تا نسخه بکاپی از آن داشته باشید. در صورتی که با انجام تغییرات مشکلی در سایت رخ داد این نسخه پشتیبان را جایگزین کنید.
حال کدهای زیر را درون این فایل قرار داده و آن را ذخیره کنید. در صورتی که کدهای خاصی قبلا به این فایل اضافه کردید، سعی کنید که آنها را شناسایی و نگهداری کنید. در واقع این کدها میتوانند جایگزین کدهای وردپرس شوند که در خط اول و انتهایی به ترتیب با Begin Wordpress و END Wordpress مشخص شده است.
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{HTTPS} !=on RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
پس از ذخیره فایل، یک بار که صفحه مورد نظر را رفرش کنید خواهید دید که مشکل سبز نشدن SSL در وردپرس و وجود خطای هشدار در آدرس HTTPS سایت برطرف شده است.
جمع بندی و کلام آخر
امیدوارم که این مقاله نیز مورد توجه و پسند شما قرار گرفته باشد و با استفاده از آن توانسته باشید ارور mixed content در وردپرس و همچنین خطا در آدرس https وردپرس را که به صورت سبز نشدن چراغ سبز مرورگر شناخته میشود برطرف کنید.
در صورتی که هر سوال یا مشکلی در خصوص این آموزش داشتید از بخش نظرات اعلام کنید تا شما را راهنمایی کنم.
سایت من بعد از نصب افزونه هم سبز نشده . چیکار کنم ؟
درود،
افزونه Really Simple SSL رو نصب و فعال کنین.
موفق باشید
سلام من همین افزونه ولی نسخه پرو رو نصب کردم ولی بعد از نصب میگه یک کد رو در wp-config قرار بده در آخر قرار دادم نشد در یک جایی دیگه قرار دادم نشد شما می دونید دقیق باید کجا قرار بگیره ممنون
با سلام با نصب افزونه و فعال کردنش ایکن قفل سبز نشده و یک علامت اخطار میاد میشه راهنماییم کنید لطفا؟؟
سلام و درود
می تونه به خاطر عدم تغییر در ادرس ها باشه که به صورت http هستند. شما باید از طریق تنظیمات در وردپرس دوو آدرس رو به https تغییر بدید و سپس در سایتتون بررسی کنید که لینک http نداشته باشه و اونا رو اصلاح کنید.
موفق باشید
سلام
وقت بخیر
من یک آی پی روی سرور hp دارم به نشانی http://79.**** از طریق ریدایرکت این ای پی رو متصل به یک ساب دامنه کردم به نام http://education.golestan.ac.ir که مراجعین زمانی که روی این ساب دامنه کلیک میکنند دیگر قادر به دیدن ای پی نباشند و فقط عنوان ساب دامنه را ببیند. در حال حاضر https رو بروی دامنه اصلی و سایر اجزای سایت فعال کرده ام. متاسفانه بر روی ساب دامنه مذکور اعمال نمی شود. از روش های متداول که در سایت های مختلف گذاشته اند پیگیری کرده ام ولی به نتیجه ای نرسیده ام. کارشناس هاست هم میگه چون اون ای پی https ندارد نمیشه. می خواستم بدونم راه حلی وجود ندارد که ساب دامین من بصورت https://education.golestan.ac.ir یا همون https نمایش داده بشه. ؟ سپاسگزارم
سلام
وب سایت شما با ساب دامنه رو بررسی کردم. مشکل شما از سمت آی پی نیست. در واقع ارتباطی با آی پی نداره. کلا خطای ERR_CONNECTION_REFUSED میده. این یعنی از سمت سرور شما نسخه HTTPS پشتیبانی نمیشه. باید رو سرور پورت 443 باز بشه یا پیش نیازهای SSL فعال بشه. ولی به طور کلی اگر نیاز دارید که آی پی رو بدون اختلال با SSL به ساب دامنه (یا دامنه) ریدایرکت کنید، از آموزش ریدایرکت آی پی به دامنه بدون اختلال در SSL استفاده کنید.
سلام وقت بخیر
من قبلا از این افزونه ssl استفاده می کردم و یه کد ریدایکرت پیدا کردم و در فایل اچ تی اکسس هاست قرار دادم ، منتها هنوز برخی از صفحاتم بدون https باز میشه و کش هم خالی شده؟
درود ناصر جان
برای رفع این مشکل، در صفحهای که بدون https درست نمایش داده میشه راست کلیک کنید و گزینه view page source رو انتخاب کنید.
سپس با زدن دکمههای ترکیبی CTRL + F عبارت http:// رو جستجو کنید، آدرس هر نوع فایل و مسیری از دامنه خودتون که روی این پروتکل داره لود میشه دلیل این مشکله که باید اصلاحشون کنید به https
تشکر
ارادت (: