نحوه انتقال سایت وردپرسی از Http به Https

نحوه انتقال سایت وردپرسی از Http به Https

در این آموزش تصمیم گرفته این که آموزش کامل و قدم به قدم نحوه انتقال سایت وردپرسی از Http به Https را به شما آموزش داده و چگونگی نصب گواهی SSL را بررسی کنیم. در این خصوص درخواست های زیادی برای ما ارسال شده است دلیل آن ها اطلاعیه گوگل در بخش کنسول جستجو بود. در این اطلاعیه آمده بود که از جولای ۲۰۱۸ همه سایت هایی که از گواهی SSL استفاده نمی کنند با تگ ناامن در مرورگر کروم نمایش داده می شوند. بدون شک دیدن این تگ برای کاربران نگرانی ایجاد خواهد کرد.

قبل از این اطلاعیه تگ ناامن در مرورگر کروم فقط برای وب سایت هایی نمایش داده می شد که دارای فرم ورود بوده ولی از SSL استفاده نمی کردند. به هر حال نمایش پیغام ناامن تاثیر منفی روی تجربه کاربر خواهد گذاشت.

معمولا انتقال سایت از پروتکل Http به Https کاری فنی و حساب شده محسوب می شود، به طوری که در صورت عدم رعایت یک نکته ممکن است سایت شما به اصطلاح شکسته شده و قابل بارگزاری به شکل صحیح نباشد.

در این مقاله از صفر تا صد نحوه انتقال سایت وردپرسی از Http به Https را بررسی کرده و کلیه نکاتی را که برای انجام آن باید رعایت کنید را به شما آموزش می دهیم. بخش هایی از این آموزش برای سایت های غیر وردپرسی هم کاربرد دارد. پس اگر حتی نمی دانید گواهی SSL چیست و چه کاربردی دارد این مطلب ویژه شماست. با ادامه مطلب همراه ما باشید.

Https چیست؟

HTTPS یا HTTP امن یک روش رمزگذاری است که ارتباط بین مرورگر کاربر و سرور شما را امن می کند. استفاده از این روش باعث می شود که کار شنود اطلاعات برای هکرها سخت تر شود.

هر روز کاربران اینترنت اطلاعات شخصی زیادی را با وب سایت ها به اشتراک می گذارند، این اطلاعات ممکن است برای خرید اینترنتی بوده و یا حتی اطلاعات ورود به یک وب سایت باشد.

برای حفاظت از اطلاعات رد و بدل شده بین مرورگر کاربر و سرور، استفاده از یک ارتباط امن ضروری است.

این جاست که SSL و HTTPS وارد عمل می شوند.

هر سایتی دارای یک گواهی SSL منحصر به فرد برای شناسایی است. اگر یک سرور تظاهر کند که روی پروتکل HTTPS است و گواهی آن دارای تطابق نباشد، بیشتر مرورگرهای مدرن مانع دسترسی کاربر به وب سایت شده و یا حداقل به او یک پیغام مبنی بر امن نبود ورود به سایت نمایش می دهند.

پیغام امن نبودن ارتباط

خب تا اینجا با اهمیت داشتن یک گواهی SSL آشنا شدید. حال یک سوال مطرح می شود، چرا سایت وردپرسی من باید از Http به Https منتقل شود؟ سایت من یک سایت کوچک است و اطلاعات خاصی را از کاربر جمع آوری نمی کند، آیا باید آن را به HTTPS منتقل کنم؟

چرا از HTTPS و SSL استفاده کنیم؟

پارسال بود که گوگل در اطلاعیه ای اعلام کرد که قصد دارد با تشویق سایت های استفاده کننده از HTTPS سطح امنیت کلی وب را افزایش دهد. به عنوان بخشی از این برنامه، مرورگر گوگل کروم کلیه سایت هایی که از گواهی SSL استفاده نمی کنند را با تگ “Not Secure” یا ناامن نمایش می دهد. اگر سایت شما از HTTPS استفاده نمی کند اگر با مرورگر کروم وارد ان شوید پیغام ناامن را مشاهده خواهید کرد.

پیغام ناامن بودن ارتباط در مرورگر کروم

در بخش دیگری از اطلاعیه منتشر شده توسط گوگل آمده است که وب سایت های دارای گواهی SSL از نظر سئو (اس ای او یا SEO) امتیاز بالاتری گرفته و در رتبه های بالاتر گوگل قرار می گیرند. به همین دلیل و پس از اعلام این خبر تعداد زیادی از وب سایت های وردپرسی و غیر وردپرسی به پروتکل HTTPS نقل مکان کردند!

گوگل طی چند مرحله پیغام Not Secure را عمومی کرد. به عنوان مثال، قبلا اگر یک کاربر وارد سایتی با پروتکل HTTP در حالت مخفی مرورگر می شد پیغام ناامن بودن را مشاهده می کرد. تنها در صورتی که کاربر در حالت عادی مروگر سایت را می دید و سعی می کرد که یک فرم را پر کند پیغام ناامنی برای اون نمایش داده می شد.

شک نکنید هنگامی که کاربر این پیغام را مشاهده می کند تاثیر منفی روی نگرش او نسبت به سایت یا کسب و کار شما ایجاد خواهد شد. چه بسا ممکن است همین پیغام مانع تکمیل کردن سفارش توسط کاربر شده و در اخرین مرحله مشتری خود را از دست دهید.

این دقیقا همان دلیلی است که باید به خاطر ان همه وب سایت ها از HTTP به HTTPS منتقل شده و فورا گواهی SSL ویژه سایت خود را نصب کنند.

یک نکته دیگر این که اگر سایت شما یک سایت فروشگاهی است و یا در آن کالاهای دیجیتال، خدمات و … به کاربر ارائه کرده و در ازای ان هزینه می گیرید حتما باید از گواهی SSL استفاده کنید.

بسیاری از شرکت های معتبر خارجی از قبیل PayPal Pro، Stripe، Authorize.net و … برای استفاده از درگاه پرداخت اینترنتی استفاده از پروتکل HTTPS را پیش نیاز قرار داده اند. البته در ایران شرکت های ارائه دهنده درگاه پرداخت استفاده از گواهی SSL را برای دریافت درگاه اینترنتی ضروری نمی دانند (که به نظر من کاملا اشتباه است و باید پیش نیاز اصلی دریافت درگاه استفاده از گواهی SSL معتبر باشد).

من برای وب سایت هشت تم و چند وب سایت دیگرم از گواهی SSL استفاده می کنم.

پیش نیازها برای انتقال سایت وردپرسی از Http به Https

برای استفاده از گواهی SSL در سایت های وردپرسی تقریبا پیش نیاز خاصی لازم نیست. تنها کاری که باید انجام دهید این است که یک گواهی SSL را خریده و یا از گواهی های رایگان استفاده کنید.

بسیاری از شرکت های ارائه دهنده خدمات هاست گواهی SSL را به صورت رایگان ارائه می دهند.

اگر شرکت هاستینگ شما گواهی SSL را به صورت رایگان ارائه نمی دهد توصیه می کنیم که هاست را عوض کرده و به یک هاست به روز نقل مکان کنید. پیشنهاد ما شرکت آبتین وب است.

نحوه دریافت گواهی SSL رایگان

بسیاری از سایت ها به دلیل هزینه نسبتا زیاد تهیه گواهی SSL تمایلی به استفاده از آن ندارند. همین هزینه اضافی سبب شده است که اطلاعات بسیاری از کاربران در معرض هک و دزدیده شدن قرار بگیرد.

یک پروژه غیر تجاری با نام Let’s Encrypt با هدف حل این مشکل و ارائه گواهی SSL رایگان راه اندازی شده است. به دلیل اهمیت پروژه خیلی سریع شرکت های بزرگ مانند گوگل، فیسبوک، شاپیفای، وردپرس و … حمایت خود را از آن اعلام کردند.

بسیاری از شرکت های ارائه دهنده خدمات هاست از این SSL رایگان پشتیبانی می کنند. به زودی یک آموزش جامع و کامل برای نحوه دریافت SSL رایگان و نصب آن به صورت دستی روی هاست را به شما اموزش می دهیم. علت عدم پوشش این موضوع در این مقاله این است که نصب گواهی توسط خود شخص یک مقدار سخت است و هدف این مقاله آسان بودن و قابل اجرا بودن برای کاربران مبتدی است.

برای بررسی فعال بودن SSL رایگان پیشنهاد می کنیم که با پشتیبان هاست خود تماس گرفته و موضوع را با او در میان بگذارید.

تنظیم وردپرس برای استفاده از SSL و HTTPS

پس از این که گواهی SSL روی دامنه شما فعال شد، باید وردپرس را تنظیم کنید که از پروتکل HTTPS روی سایت شما استفاده کند. فعال سازی گواهی به تنهایی کافی نیست، باید به وردپرس بفهمانید که سایت شما از پروتکل HTTPS استفاده می کند و ترافیک شما باید روی این پروتکل باشد.

دو روش برای انجام این کار در وردپرس وجود دارد که می توانید متناسب با نیاز خود از آن ها استفاده کنید:

روش اول: فعال سازی SSL/HTTPS در وردپرس با افزونه

این روش ساده ترین روش است و برای کاربران مبتدی توصیه می شود.

برای استفاده از این روش کافی است افزونه Really Simple SSL را نصب کرده و آن را فعال کنید.

پس از فعال سازی افزونه وارد صفحه تنظیمات > SSL شوید. افزونه به صورت خودکار گواهی SSL شما را شناسایی می کند و سایت شما را طوری تنظیم می کند که از پروتکل HTTPS استفاده نماید.

تنظیمات افزونه Really Simple SSL و Http به Https

این افزونه همه کارهای مورد نیاز را به صورت خودکار انجام می دهد و حتی ارور mixed content یا محتوای ترکیبی را هم برطرف می کند. کارهایی که افزونه انجام می دهد به شرح زیر است:

  • بررسی گواهی SSL
  • تنظیم وردپرس برای استفاده از آدرس های HTTPS
  • تنظیم تغییر مسیرها از HTTP به HTTPS
  • بررسی آدرس های موجود ناامن در محتوا و تلاش برای برطرف کردن مشکل آن ها

نکته: این افزونه مشکل محتوای ترکیبی را با استفاده از تکنیک های تغییر خروجی برطرف می کند. این کار می تواند تاثیر منفی روی سرعت و کارایی سایت شما داشته باشد، چرا که با هر بار لود شدن صفحه محتوای HTTP به HTTPS تبدیل می شود. این تاثیر منفی فقط در اولین لود شدن مشاهده شده و در صورت استفاده از افزونه کش به حداقل می رسد.

در توضیحات افزونه آمده است که شما می توانید افزونه را غیرفعال کرده و همچنان از SSL استفاده نمایید. این ادعا کاملا صحیح نیست. شما باید همیشه این افزونه را فعال داشته باشید چرا که غیرفعال کردن آن باعث بروز خطای mixed content یا محتوای ترکیبی در سایت شما می شود.

روش دوم: فعال سازی SSL/HTTPS در وردپرس به صورت دستی

به صورت کلی پیشنهاد می کنیم که از این روش استفاده کنید. در این روش کلیه مراحل به صورت دستی و با ویرایش فایل های وردپرس انجام می شود. این روش یک روش دائمی محسوب شده و تاثیر منفی روی سرعت و کارایی سایت نخواهد داشت. ما در سایت هشت تم به کمک این روش گواهی SSL را نصب و تنظیم کرده ایم.

در صورتی که انجام این کار برای شما مشکل است می توانید از طریق این فرم با ما تماس گرفته تا این کار را برای شما انجام دهیم.

در بخش های مختلف این آموزش نیاز است که فایل های مختلف وردپرس ویرایش شوند، پس حتما باید با نحوه ویرایش فایل های مختلف آشنا باشید.

به عنوان اولین قدم، وارد بخش تنظیمات > عمومی شوید. در این قسمت فیلد های نشانی وردپرس (URL) و را تغییر داده و HTTP  را به HTTPS تغییر دهید.

تغییر آدرس وردپرس به HTTPS

فراموش نکنید که بعد از این کار حتما دکمه ذخیره‌ی تنظیمات را بزنید.

پس از ذخیره شدن تنظیمات شما از وردپرس خارج شده و باید دوباره وارد شوید.

مرحله بعد تغییر مسیر درخواست های HTTP به HTTPS است. برای این کار فایل htaccess موجود در روت هاست را ویرایش کرده و کد زیر را در آن قرار دهید.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

اگر روی وب سرور nginx هستید (بیشتر سایت ها از این وب سرویس استفاده نمی کنند)، کد زیر را برای انتقال درخواست های HTTP به HTTPS باید در فایل تنظیمات قرار دهید:

server {
listen 80;
server_name example.com www.example.com;
return 301 https://example.com$request_uri;
}

فراموش نکنید که example.com را با نام دامنه خود جایگزین کنید.

با انجام مراحل بالا کل سایت وردپرسی شما از طریق پروتکل HTTPS بارگزاری خواهد شد.

اگر می خواهید که وردپرس را مجبور کنید که در صفحات مدیریت و صفحه ورود از HTTPS استفاده کند، باید فایل wp-config.php را به شکل زیر ویرایش کنید.

کد زیر را دقیقا بالای خط  “That’s all, stop editing!” در فایل wp-config.php قرار دهید:

define('FORCE_SSL_ADMIN', true);

کد بالا به وردپرس این امکان را می دهد که در صفحات پیشخوان مدیریت تنها از پروتکل HTTPS استفاده کند. کد بالا با وردپرس شبکه هم سازگاری دارد.

پس از انجام این کارها سایت شما کاملا از SSL/HTTPS استفاده می کند، اما ممکن است در صفحات سایت با ارور mixed content یا محتوای ترکیبی مواجه شوید.

این خطاها توسط محتواهای مختلف (تصاویر، اسکریپت ها یا فایل های استایل) که هنوز با پروتکل HTTP لود می گردند ایجاد می شود. هنگام بروز این حالت، مرورگرهای مختلف سایت شما را با نمایش دادن آیکون قفل نمایش نمی دهند و در واقع سایت شما هنوز از نظر مرورگر ناامن است.

پیغام محتوای ترکیبی در مرورگر

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

محتوای ناامن در سایت HTTPS وردپرسی

با استفاده از ابزار Inspect در مرورگرهای مدرن می توانید محتوای لود شده از طریق پروتکل ناامن را پیدا کنید. ارور محتوای ترکیبی یا mixed content به شکل یک هشدار در کنسول قابل مشاهده است.

ارور محتوای ترکیبی یا mixed content

همانطور که مشاهده می کنید بسیاری از این ارورها مربوط به تصاویر، اسکریپت ها و فایل های css لود شده توسط قالب و افزونه های وردپرس است.

حل خطای Mixed Content در دیتابیس وردپرس

بسیاری از این ارورها به دلیل آدرس های قدیمی تصاویر، فایل ها و … در دیتابیس وردپرس است. اول این مورد را برطرف می کنیم.

تنها کاری که باید انجام دهید این است که همه آدرس های سایت موجود در دیتابیس وردپرس که با HTTP شروع می شوند را ویرایش کرده و به جای آن از HTTPS استفاده کنید.

این کار را می توانید با افزونه Better Search Replace انجام دهید.

با فعال سازی افزونه باید وارد صفحه ابزارها > Better Search Replace شوید. در فیلد Search for باید آدرس سایت خود را با HTTP وارد کنید. در قسمت Replace with هم آدرس سایت‌تان را با پروتکل HTTPS قرار دهید.

افزونه Better Search Replace

در قسمت Select tables همه جدول های موجود در دیتابیس وردپرس قابل مشاهده هستند. همه این جدول ها را انتخاب کنید (با نگه داشتن کلید CTRL و کلیک روی هر جدول).

در آخر تیک گزینه Run as dry run را برداشته و روی دکمه Run Search/Replace کلیک کنید. اگر تیک گزینه Run as dry run را برندارید هیچ جایگزینی انجام نمی شود و تنها عمل جستجو توسط افزونه صورت می گیرد.

حالا افزونه کل دیتابیس سایت شما را بررسی کرده و آدرس های نا امن شما را با نسخه امن تحت پروتکل https جایگزین می کند. این کار ممکن است اندکی زمان ببرید.

توجه: قبل از اجرای جستجو حتما از دیتابیس خود نسخه پشتیبان تهیه کنید.

حل خطای Mixed Content در قالب های وردپرس

یکی دیگر از عواملی که می تواند باعث بروز خطای محتوای ترکیبی شود قالب وردپرس است. قالب های استاندارد وردپرس مشکلی نداشته و باعث بروز این مشکل نخواهند شد.

اولین قدم برای رفع این مشکل، استفاده از ابزار Inspect مرورگر برای پیدا کردن محتوا و مکان بارگزاری آن است.

ابزار inspect مرورگر و خطای mixed content

پس از این مرحله باید آدرس فایل ها را در قالب پیدا کرده و آن را با https جایگزین کنید. این کار ممکن است برای بیشتر افراد مبتدی سخت و وفت گیر باشد، چرا که نمی توان مکان لود شدن آدرس را در قالب پیدا نمود.

حل خطای Mixed Content در افزونه های وردپرس

برخی از ارورهای محتوای ترکیبی ممکن است توسط افزونه های غیر استاندارد وردپرس ایجاد شوند. هر افزونه ای که طبق استاندارد کدنویسی وردپرس نوشته شده باشد مشکلی در این زمینه ایجاد نخواهد کرد.

پشنهاد ما این است که به طور مستقیم فایل های افزونه را ویرایش نکنید و به توسعه دهنده آن اطلاع دهید، اگر پاسخی دریافت نکردید از افزونه های مشابه استفاده نموده و به عنوان آخرین کار ویرایش را انجام دهید.

ارسال سایت HTTPS به کنسول جستجوی گوگل

موتورهای جستجو مانند گوگل آدرس های HTTP و HTTPS یک سایت را دو سایت جداگانه در نظر می گیرند. پس باید به گوگل اطلاع دهید که سایت شما از آدرس http به پروتکل https منتقل شده است تا مشکلی در زمینه ایندکس شدن صفحات و سئو وجود نداشته باشد.

برای این کار باید وارد حساب کاربری خود در Google Search Console شده و روی دکمه ‘Add a Property’ کلیک کنید.

اففزودن سایت در کنسول جستجو گوگل

با کلیک کردن روی این دکمه یک پاپ آپ باز می شود، در این پنجره آدرس سایت خود را با https وارد کنید.

افزودن آدرس Https سایت

با این کار، گوگل از شما می خواهد که مالکیت سایت جدید را تایید کنید. چند راه برای این کار وجود دارد، یکی از روش ها را انتخاب کرده و عملیات تایید سایت خود را به اتمام برسانید. پشنهاد ما استفاده از روش HTML tag است.

تایید مالکیت سایت در کنسول گوگل

 

پس از تایید مالکیت سایت، گوگل آمار و اطلاعات مربوط به سایت امن شما را نمایش می دهد. نمایش آمار ممکن است چند روز طول بکشد.

توجه داشته باشید که هم نسخه http و هم https باید در کنسول گوگل اضافه شده باشند. به علاوه نسخه های بدون www و با www به طور جداگانه باید در کنسول اضافه شوند.

به عبارت دیگر شما باید ۴ سایت مختلف را در Search Console اضافه کرده باشید. آدرس این سایت ها به شرح زیر است:

http://www.test.ir
http://test.ir
https://www.test.ir
https://test.ir

گوگل به صورت پیشفرض نسخه https را در نتایج نمایش می دهد.

نتیجه گیری

همانطور که مشاهده کردید عملیات انتقال سایت وردپرسی از Http به Https به آسانی توسط هر فردی قابل انجام است. فقط در برخی مراحل ممکن است کاربران مبتدی دچار مشکل شوند.

با اتمام  این کار مقداری زمان لازم است تا آدرس های https در گوگل نمایش داده شوند.

توجه داشته باشید که در هر مرحله مشکلی برایتان پیش آمد آن را از طریق فرم ارسال دیدگاه همین مطلب و یا بخش تماس، با ما در میان بگذارید.

خواندن مطلب ۱۹ قابلیت مخفی وردپرس که احتمالا از وجود آن ها خبر ندارید را از دست ندهید.

0 پاسخ

دیدگاه خود را ثبت کنید

مطلب خاصی فکرتان را مشغول کرده است ؟
آن را با ما در میان بگذارید !

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *