پروتکلهای بسیاری در فضای اینترنت وجود دارند که یکی از آن ها HTTP است. این پروتکل برای ایجاد قوانینی مربوط به ارسال و دریافت درخواستها تهیه شده است. مدل ایمن شده این پروتکل HTTPS نام دارد. S در آخر این پروتکل به کلمه secure باز میگردد. کاربران علاوه بر سرعت در حین جستجو، به دنبال امنیت هم هستند. پس اکثرا ترجیح میدهند آدرسهای وردپرس خود را به این پروتکل منتقل کنند. در اینجا بیشتر در مورد انتقال آدرسهای وردپرس از HTTP به HTTPS صحبت میکنیم.
راههای بسیاری برای بالا بردن این ایمنی وجود دارد. یکی از این روشها استفاده از گواهینامه SSL در سایتتان است. در ادامه بیشتر به جزئیات مربوط به این انتقال و همچنین گواهینامه Secure Sockets Layer میپردازیم.
چرا آدرسها را از HTTP به HTTPS انتقال دهیم؟
قبل از هرچیز باید به این سوال پاسخ دهیم که دلیل انتقال آدرسهای وردپرس از HTTP به HTTPS چیست؟
احتمالا با پروتکل HTTPS آشنا هستید. همان طور که بارها شنیدهاید این پروتکل یک روش رمزگذاری بر روی دادههایی است که بین کاربر و مرورگر مبادله میشود. پس ایمنی وبسایتها با استفاده از پروتکل HTTPS افزایش پیدا میکند.
اما این تمام ماجرا نیست. موتورهای جستجوگر اعم از گوگل توجه ویژهای به وبسایتهایی که از این پروتکل استفاده کرده است دارند. در واقع این وبسایتها در حین جستجوی کاربر در الویت نمایش هستند. پس این پروتکل بر سئو وبسایت هم موثر است!
پس دو دلیل قانع کننده برای انتقال آدرسهای وردپرس از HTTP به HTTPS وجود دارد:
۱. امنیت وبسایت تضمین میشود.
۲. گوگل HTTPS را به عنوان یک نکته مثبت در نظر میگیرد.
فورس HTTPS برای صفحه ادمین و لاگین
زمانی که از گواهینامه SSL صحبت میکنیم هدف این است که به طور پیش فرض وبسایت شما بر روی پروتکل HTTPS بارگذاری شود. حتی زمانی که کاربران HTTPS را در ابتدای آدرس وبسایت تایپ نکنند.
این گواهینامه هم شبیه به یک پروتکل امنیتی عمل میکند. در واقع ارتباط بین سرویس دهنده و سرویس گیرنده را ایمن میکند.
زمانی که شما از گواهینامه SSL در وبسایت استفاده نکنید، مرورگر پیغامی به کاربر نمایش میدهد. این پیغام حاوی یک متن اخطار است که این وبسایت تماما ایمن نیست. همین پیغام کمی کاربران را میترساند، که بدون شک ما به دنبال این نیستیم.
حالا که از اهمیت این گواهینامه و پروتکل باخبر شدهاید، وقت آن است ببینم که چطور میتوان آن را بر روی سایت فعال کرد. در اینجا به دو روش اشاره میکنیم.
با استفاده از پلاگین WordPress HTTPS(SSL)
یکی از سادهترین راهها برای اضافه کردن قابلیت به وردپرس استفاده از پلاگینهای مناسب است. در روش اول استفاده از پلاگین WordPress HTTPS(SSL) را آموزش میدهیم.
با استفاده از این افزونه میتوانید HTTPS را برای هر صفحهای که باید، فعال کنید. به طور کلی این افزونه میتواند HTTPS را برای تمامی صفحات و صفحه ادمین فعال کند. هرچند انتخاب با شما است.
برای مثال، ممکن است بخش بلاگ وبسایت شما هیچ نیازی به پروتکل HTTPS نداشته باشد. از طرفی فعال بودن این پروتکل در فروشگاه سایتتان حیاتی است. تمام اینها به خودتان بستگی دارد.
برای شروع، ابتدا باید این افزونه را دانلود، نصب و فعال کنید. برای این کار به داشبورد وردپرس بروید. در تب افزونهها روی کلید افزودن کلیک کنید. نام افزونه را سرچ کنید و هماکنون نصب کن را انتخاب کنید. بعد از این کار افزونه را فعال کنید.
البته میتوانید فایل فشرده افزونه را از وبسایت رسمی وردپرس هم دانلود کنید و افزونه را از طریق فایل زیپ نصب کنید.
پس از نصب به صفحه تنظیمات افزونه بروید. در اینجا تنظیمات متنوعی قرار دارد.
اولین کاری که باید بکنید فعال کردن تیک گزینه Force SSL Administration است. این کار باعث میشود داشبورد وردپرس با SSL بارگذاری شود.
گزینه بعدی که باید فعال کنید Force SSL Exclusively است. این گزینه برای این است که تمامی صفحات وبسایت روی HTTPS بارگذاری شوند. در آخر فراموش نکنید که تنظیمات را ذخیره کنید.
مرحله بعد انتخاب پستهایی از سایت است که میخواهید HTTPS فقط بر روی آنها فعال باشد. برای این کار پستهای مورد نظر را در ادیتور باز کنید.
اگر صفحه را پایین بکشید بخش جدیدی میبینید. در این بخش میتوانید با فعال کردن Secure post این قابلیت را فعال کنید.
گزینه Secure Child Posts برای این منظور است که بارگذاری بر روی HTTPS را برای تمامی پستهای فرزند نیز فعال کنید. بعد از اعمال تغییرات حتما تنظیمات جدید را ذخیره کنید.
برای اینکه ببینید این قابلیت فعال شده است یا نه لینک وبسایت خود را با HTTP وارد کنید. بعد از بارگذاری میبینید که به طور خودکار بر روی HTTPS بارگذاری میشود.
با استفاده از فایل wp-config.php
این روش برای زمانی است که فقط صفحه ادمین روی HTTPS بارگذاری شود. در این روش با فایلهای هسته وردپرس سر و کار دارید.
فایلی که به دنبال آن هستیم wp-config.php است. برای دسترسی به این فایل به پوشه public_html هاستتان بروید. روی فایل مورد نظر راست کلیک کنید و از منوی باز شده View/Edit را بزنید.
در ویرایشگر صفحه را پایین بکشید تا به خط /* That’s all, stop editing! Happy blogging. */ برسید. این خط نشان دهنده پایان دستورات فایل است. سپس کدهای زیر را کپی کرده و درست قبل از این خط جایگذاری کنید.
- define(‘FORCE_SSL_ADMIN’, true);
- define(‘FORCE_SSL_LOGIN’, true);
خط اول برای این است تا همیشه صفحه ادمین بر روی HTTPS بارگذاری شود. خط دوم هم برای بارگذاری صفحه لاگین وردپرس بر روی HTTPS است.
این کار را میتوانید با استفاده از افزونهای که در روش اول نام بردیم هم انجام دهید. این روش برای کسانی است که از روبرو شدن با فایلهای هسته ترسی ندارند.
انتقال سایر صفحات وردپرس به HTTPS
همان طور که اشاره کردیم گوگل توجه ویژهای به وبسایتهایی که بر روی HTTPS قرار گرفتهاند دارد. اگر به دنبال انتقال سایز صفحات وردپرس به HTTPS هستید میتوانید هرکدام از دو روش زیر را پیش بگیرید.
با استفاده از داشبورد وردپرس
در روش اول از داشبورد وردپرس استفاده میکنیم. از پنل ادمین به مسیر تنظیمات و سپس عمومی بروید. در اینجا هر دو آدرسها را از HTTP به HTTPS تغییر دهید. به تصویر زیر دقت کنید:
بعد از تغییر آدرس وردپرس و آدرس سایت، به تمامی لینکها HTTPS اضافه میشود. اگر چه این روش ممکن است منجر به خرابی assetهای جاوا اسکرپیت و CSS شود.
با استفاده از فایل .htaccess
یکی از متدها برای انتقال آدرسهای وردپرس از HTTP به HTTPS استفاده از داشبورد وردپرس است. اما در این روش با خرابی assetهای جاوا اسکرپیت و CSS مواجه میشوید. به طوری که بعد از تغییر پروتکل هم برخی از لینکها با HTTP بارگذاری میشوند. همین موضوع باعث میشود که در هنگام بارگذاری، وبسایتتان با اختلال مواجه شود.
خوشبختانه این assetها قابل تصحیح هستند. برای این کار باید دستورات فایل htaccess را ویرایش کنید. این فایل را از طریق کنترل پنل هاستتان پیدا کنید و قطعه کدهای زیر را به آن اضافه کنید:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
طبق این دستورات مشخص شده است که اگر آدرس بر روی پورت 443 قرار ندارد آن را به پورت 301 ریدایرکت کند.
تصحیح CSS و جاوا اسکرپیت (در صورت انتقال از طریق داشبورد)
زمانی که صفحات وردپرس را از طریق داشبورد وردپرس به HTTPS منتقل میکنید با خرابی فایلهای CSS و جاوا اسکریپت روبرو میشوید. به طوری که هربار پیغامی مبنی بر غیر ایمن بودن این فایلها دریافت میکنید. جای نگرانی نیست، برای رفع این مشکل هم راه حلی وجود دارد.
یکی از اقدامات این است که از صاحب فایل بر روی دامین دیگر بخواهید آدرس را از http به پروتکل مستقل دیگری تغییر دهد. اما اگر که این کار برایتان ممکن نیست طبق مراحل زیر پیش بروید:
- فایل را دانلود کنید.
- به دنبال لینک http:// باشید و آن را به // تغییر دهید.
- این فایل را بر روی سایتتان آپلود کنید.
- به دنبال فایلها و پستهایی باشید که حاوی این فایل هستند.
- آدرس این فایل را در پستها و فایلها به آدرس جدید تغییر دهید.
فورس HTTPS در دیتابیس (برای جلوگیری از ارور Mixed Content)
برای جلوگیری از ارور Mixed Content میتوانید لینکهای موجود در دیتابیس را که هنوز بر روی HTTP قرار دارند، ویرایش کنید. برای این کار میتوانید از افزونهای که لینکها را جستجو و جایگزین میکند استفاده کنید. پیشنهاد ما افزونه Better Search Replace است.
بعد از نصب و فعالسازی، افزونه را باز کنید. به ازای مقدار Search for آدرس سایت (http://yourwebsite.com) را جستجو کنید. سپس در کادر Replace With آدرس جدید همراه با HTTPS را وارد کنید (https://yourwebsite.com). در آخر برای اعمال تغییرات بر روی Run Search/Replace کلیک کنید. با این کار آدرسهای قدیمی با آدرس جدید جایگزین میشوند.
استفاده از SSL Checker برای ارورهای Mixed Content باقی مانده
فرض کنید در یک خانه دو در وجود دارد. زمانی که یک در قفل باشد و در دیگر باز باشد، خانه امن نیست. برای ایمنی باید هر دو در همزمان قفل باشند. در اینجا هم همین طور است. زمانی که در اول (لینکها) را قفل کردهاید، وقت آن است که تمامی درها و پنجرههای باقی مانده را قفل کنید (موظف به استفاده از SSL کنید).
برای پیدا کردن صفحات، لینکها و تمامی iFrameهایی که بخشی از صفحه سایت هستند باید زمان زیادی صرف کنید. قالبهای فعال، افزونهها و هر کد و تصویری که به وبسایت خود اضافه کردهاید، از جمله جاهایی هستند که باید بگردید. تمامی این موارد باید بر روی HTTPS بارگذاری شوند.
برای پیدا کردن موارد غیر ایمن در صفحه خود افزونه کش وردپرس را غیرفعال کنید. کش مرورگر را پاک کنید و مرورگر را در حالت incognito باز کنید. هر صفحه را با استفاده از ابزار توسعه دهندگان یا inspector چک کنید. چیزی که به دنبال آن هستید یک خطای Mixed Content است. خطایی شبیه به تصویر زیر:
بعد از جستجوی تمامی منابع احتمالی دارای Mixed Content باید از یک ابزار SSL checker برای بررسی استفاده کنید. ابزارهای متنوعی وجود دارند اما ما ابزار JitBit را پیشنهاد میکنیم.
چند نکته دیگر
تغییر آدرس در سرچ کنسول گوگل
بعد از انتقال آدرسهای وردپرس از HTTP به HTTPS باید به کنسول سرچ گوگل بروید. در اینجا باید آدرس جدید را وارد کنید. زمانی که وارد کنسول گوگل میشوید لینک Change of address را میبینید. این لینک کار نمیکند و باید به دنبال راه حل دیگری باشید.
سادهترین کار ایجاد یک property جدید است. برای این کار بر روی Add a new property کلیک کنید. هر دو آدرس را با HTTP و HTTPS وارد کنید. بعد از این کار هر دو را Verify کنید. پیشنهاد میکنیم که لینک قدیمی را حذف نکنید و از آن به عنوان یک منبع استفاده کنید. در هر صورت بعد از انجام این کار گوگل آدرس جدید را خزش میکند.
تغییر آدرس در گوگل آنالیتیکس
بعد از انتقال آدرسهای وردپرس از HTTP به HTTPS باید مطمئن شوید که گوگل آنالیتیکس هم آدرسهای HTTPS را ردیابی میکند. برای این کار به property – Property Setting بروید. در اینجا به ازای مقدار Default URL باید HTTPS را انتخاب کنید.
ثبت مجدد سایت مپ
زمانی که از SSL در وردپرس استفاده میکنید به طور خودکار یک سایت مپ جدید تولید میکنید. اگر که از افزونه Yoast Seo استفاده میکنید فقط کافی است تا لینک زیر را در کنسول جستجوی گوگل مجدد ثبت کنید:
https://mysite.com/sitemap_index.xml
نتیجهگیری
گواهینامه SSL باعث میشود انتقال دیتا محافظت شده انجام شود. در واقع اطلاعات به صورت رمزگذاری شده بین سرور و کاربر رد و بدل میشود. البته که نباید فراموش کرد استفاده از SSL و HTTPS فقط یکی از روشها برای بالا بردن ایمنی یک وبسایت است. استفاده از این دو به معنی ایمنی و حفاظت مطلق نیست.