آموزش کامل انتقال وردپرس از HTTP به HTTPS و نصب SSL

تبلیغات
کانال تلگرام فتولیا

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

فعلا این تاثیرگذاری خیلی کم و در حد ۱% از کل جستجوهای دنیاست و کمتر از بقیه موارد(مثل کیفیت محتوای بالا) موثر است تا به مدیران سایت ها فرصت اسباب کشی روی HTTPS داده شود.

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

SSL با HTTPS

SSL یا Secure Sockets Layer ، یک تکنولوژی استاندارد امنیتی برای ایجاد ارتباط رمزگذاری شده بین وب سرور و مرورگر کاربر است. این ارتباط تضمین می کند که همه اطلاعات رد و بدل شده بین وب سرور و مرورگرها، محافظت شده و امن باقی می مانند.

HTTPS در واقع ساختاری مشابه همان URI معمولی دارد غیر از توکن. در واقع HTTPS به مرورگر خبر می دهد که از یک لایه رمزنگاری شده SSL استفاده کند تا ترافیک تبادلی را محافظت کند.

مخلص کلام اینکه ، SSL استانداردی است که مشخص می کند اتصال ها چگونه بوسیله HTTPS باید رمزنگاری شوند.

SSL چگونه کار می کند؟

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

وقتی مرورگری به یک سایت امن وصل می شود، یک نسخه از گواهینامه SSL آن را دریافت می کند و نگاه می کند تا منقضی نشده باشد، و مرجع صادر کننده آن معتبر و مورد قبول مرورگر باشد و نیز توسط وب سایتی استفاده شده باشد که گواهینامه برای آن صادر شده است و نه غیر. اگر در هر کدام از این قدم ها خطایی رخ دهد مرورگر یک اخطار به کاربر می دهد تا کاربر را از امن نبودن سایت مطلع کند.(مثل خطاهایی که در کنترل پنل هاستینگ ها ایرانی معمولا می بینیم!)

تفاوت های بین HTTP و HTTPS

این دو در خیلی از موارد با هم تفاوت دارند ولی به نظرم بزرگترین تفاوت شان در سه بخش زیر است:

  1. ساختار URL: اولین بخش آدرس در HTTPS به صورت پیش فرض با https:// شروع و از پورت ۴۴۳ استفاده می کند. در حالی که HTTP با http:// شروع می شود و از پورت ۸۰ استفاده می کند.
  2. امنیت: HTTP نا امن است و مامنی برای حملات استراق سمع می باشد در حالی که HTTPS در مقابل این نوع حملات مقاوم است.
  3. لایه های شبکه: HTTP در بالاترین لایه از TCP/IP فعالیت می کند که لایه Application Layer است.
    پروتکل امنیتی SSL به عنوان پایین ترین زیر لایه همان مدل TCP/IP فعالیت می کند ولی پیام های HTTP را موقع ارسال رمزگذاری و بعد از رسیدن به مقصد رمزگشایی می کند.بنابراین HTTPS یک پروتکل جدا نیست، بلکه روی HTTP معمولی ، ارتباط رمزگذاری شده SSL ایجاد می کند.
در همین رابطه :   چگونه از پلاگین Akismet وردپرس برای تشخیص اسپم استفاده کنم؟

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

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

تا به حال چند بار یک سایت را در شبکه باز و عمومی باز کرده اید و تبلیغات غیر منتظره را دیده اید؟

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

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

انتقال وردپرس از http به https

بنابراین بعد از اینکه وردپرس (یا هر سایت دیگری) را نصب کردید باید SSL آن را نیز فعال کنید.برای این کار ابتدا یک گواهینامه SSL برای دومین سایت تان بگیرید.آن را روی سرور نصب کنید و لینک ها را از http به https تغییر دهید.

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

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

برای اینکه بفهمید این قابلیت فعال است ، وارد سی پنل شوید و گزینه SSL/TLS manager را در بخش Security پیدا کنید.

 

گرفتن یک گواهینامه SSL

انواع مختلفی از گواهینامه های SSL وجود دارند که به طور کلی در سه دسته بندی قرار می گیرند: Domain Validation, Organization Validation, Extended Validation.

  • Domain-level validation معمولا ارزان ترین و ساده ترین نوع از SSL است. این گواهینامه ها رمزگذاری ساده ای دارند و سریعا صادر می شوند و فقط یک بررسی ساده برای تایید صاحب دومین نیاز دارند.
  • Organization-validated گواهینامه هایی هستند که بیزینس یا سازمان پشت دومین را بررسی و تایید می کنند. همچنین سطح بالاتری از امنیت را ایجاد می کنند و خیال کاربران را راحت تر می کنند.
  • Extended validation برترین و بالاترین نوع گواهینامه موجود است.مرجع صادر کننده گواهینامه SSL، برای صدور این نوع از گواهینامه ها ، معاینه خیلی عمقی و کاملی از بیزینس شما انجام می دهد.این نوع بالاترین امنیت و اعتماد کاربران را به دنبال دارد.
در همین رابطه :   تقویم های تیر ماه 1390 (شب طوفانی وردپرس و ...)

یک مقاله برای نحوه انتخاب بهترین نوع SSL در namecheap هست که می توانید ببینید.

خیلی از شرکت ها در زمینه فروش آنلاین گواهینامه های SSL فعالیت می کنند مثل  SSLs.comMedia TempleGoDaddyComodo و Namecheap. (در شرکت های ایرانی هم نمونه های زیادی هست با کمی جستجو پیدا خواهید کرد)

چگونه گواهینامه SSL را فعال کنیم؟

توجه: من (نویسنده مقاله اصلی) گواهینامه خودم را از Namecheap خریداری کردم ولی دستور العمل های این مقاله معتبر هستند صرف نظر از شرکتی که شما از آن خرید کرده اید.

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

۱.وارد سی پنل شوید و به بخش SSL/TLS Manager بروید.

۲.روی لینک زیر Certificate Signing Requests (CSR) کلیک کنید

۳.فرم مربوطه را با توجه به دومینی که قصد فعال کردن SSL آن را دارید ، تکمیل کنید و دکمه Generate را بزنید

۴.کد CSR رمزنگاری شده مربوط به دومین تان را باید به صورت زیر ببینید

۵.حالا به سمت شرکتی که گواهینامه SSL رو از آن خریداری کرده اید بچرخید و وارد سایت آن شوید.کدی که در مرحله قبل تولید شد، در فیلد متنی مربوط به CSR وارد کنید و نوع وب سروری که هاست شما از آن استفاده می کند انتخاب کرده و روی دکمه Next کلیک کنید.

۶. سپس از شما خواسته می شود اطلاعات CSR خود را وارد نمایید و یک ایمیل تاییدیه انتخاب کنید

۷. اطلاعات تماس شخصی تان را وارد نمایید. بعد سفارش را ثبت کنید. یکی ایمیل تاییدیه برای تان ارسال می شود که دستور العمل های موجود در آن را برای اعتبارسنجی دومین تان باید انجام دهید.

بعد از پایان اعتبارسنجی، SSL شما باید صادر شده و برای تان ایمیل شود.

ما باید گواهینامه دریافت شده را روی سرور نصب کنیم.یک IP اختصاصی نیاز است که به cPanel اختصاص دهید. از نمی توانید یک IP گیر بیاورید، خیلی از هاستینگ های سی پنل از Server Name Indication یا SNI پشتیبانی می کنند- یک پلاگین برای پروتکل TLS که به سرور اجازه می دهد چندین گواهینامه را روی یک IP همسان ارائه کند.

چون سرور اشتراکی من از SNI پشتیبانی می کند، تصمیم گرفتم از آن استفاده کنم به جای اینکه یک IP اختصاصی تهیه کنم.

توجه: استفاده از IP اختصاصی برای SSL مزیت های زیادی دارد که در این مقاله می توانید آنها را ببینید.

چگونه گواهینامه SSL را نصب کنم؟

۱.در سی پنل در بخش SSL/TLS Manager ، روی لینک زیر Certificates (CRT)  کلیک کنید

در همین رابطه :   سیر تا پیاز امنیت وردپرس

۲.گواهینامه تان را در این بخش آپلود کنید(دارای پسوند .crt است) یا در فیلد مربوطه کپی کنید

۳. SSL را برای سایت تان فعال کنید.پس روی لینک زیر Install and Manage SSL for your site (HTTPS) کلیک کنید

۴.دومین را از لیست پایین افتادنی انتخاب کنید، روی Autofill by domain کلیک کنید و در نهایت دکمه Install Certificate را بزنید

تنظیمات وردپرس برای SSL/HTTPS

در وردپرس لینک ها( مثل پیوندهای چند رسانه ای، فایل های CSS و JavaScript) به آدرس نصب وردپرس مربوط می شوند.

برای تغییر آدرس وردپرس از HTTP به HTTPS، آدرس نصب قبلی باید عوض شود مثلا از

http://fotolia.ir

به

https://fotolia.ir
  • وارد داشبورد وردپرس شوید و به منوی تنظیمات > همگانی بروید
  • مطمئن شوید که آدرس داخل فیلد نشانی وردپرس و نشانی سایت، هر دو دارای https باشند.اگر اینطور نیست یک حرف s به هر کدام اضافه کنید. سپس دکمه را ذخیره با بزنید

برای اینکه به راحتی داشبورد مدیریت وردپرس را مجبور کنید از SSL استفاده کند ، باید ثابت FORCE_SSL_ADMIN را در فایل wp-config.php قرار دهید و مقدارش را true کنید.

define('FORCE_SSL_ADMIN', true);

اگر سایت تان از CDN استفاده می کند ، باید همه آدرس های فایل هایی از این طریق لود می شوند، نیز با https شروع شود والا مرورگرها سایت شما را ناامن و با نوار زرد نشان خواهند داد.این موضوع در مورد همه فایل هایی که از سایت های دیگر مثل آمارگیرها، وب فونت ها و … در سایت لود می شوند نیز صادق است.

قدم بعدی چیست؟

حالا که با موفقیت وردپرس را روی HTTPS بردیم ، هنوز دو کار باید انجام دهیم

  1. ایجاد یک ریدایرکت دائمی ۳۰۱
  2. خبردار کردن گوگل از تغییر آدرس سایت مان

برای گزینه اول ، فایل .htaccess را از پوشه اصلی هاست تان باز کنید و خطوط زیر را به اول این فایل اضافه کنید و سپس ذخیره نمایید

RewriteEngine on
RewriteCond %{HTTP_HOST} ^yoursite.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.yoursite.com [NC]
RewriteRule ^(.*)$ https://www.yoursite.com/$1 [L,R=301,NC]

دقت کنید که yoursite.com را باید با آدرس دومین خودتان عوض کنید.

برای مطلع کردن گوگل از تغییر آدرس سایت تان، دوباره سایت تان را به ابزار  Google webmaster tool اضافه کنید(ولی این بار با https://) و دستور العمل های این مقاله را پی بگیرید تا گوگل را از تغییر آدرس به https خبردار کنید زیرا بسیار مهم است.

حالا وب سایت شما باید با https در دسترس باشد . برای بررسی وضعیت SSL سایت خود می توانید از Qualys SSL Labs استفاده کنید.

خلاصه

با مطالعه کامل این مقاله شما باید اطلاعات کاملی در مورد HTTPS و SSL داشته باشید، اینکه چرا باید سایت خود را با SSL امن کنید ، به علاوه روش تنظیم وردپرس برای استفاده از https/ssl.

امیدوارم این مقاله مورد استفاده تون قرار گفته باشد.

منبع

پاسخ دهید

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

More in PHP
فرم ثبت نام حرفه ای با PHP/jQuery به صورت AJAX

سلام :) در این مبحث اگر موافق باشید می خواهیم روی یک فرم با شمایل فیبر کربن ! کار کنیم...

Close