SSL چیست ؟ (به زبان ساده و راهنمای نصب)

حتما تا الان در مورد اینکه ssl چیست مطالب زیادی شنیده اید و میدانید که اس اس ال چقدر میتواند در وبسایت شما مفید باشد ولی اینکه دقیقا بدانیم چیست و چطور میتوان آن را دریافت و نصب کرد موضوع کامل صحبت امروز ماست.

 

 مطلب SSL چیست ؟ (به زبان ساده و راهنمای نصب) در تاریخ دهم دی ماه بازنویسی و کامل بروزرسانی شد

ssl چیست

بگذارید قبل از اینکه از نظر فنی و ساختاری بدانیم ssl چیست بیاییم در مورد کاربرد نمایشی آن که دقیقا کجا باید ssl را ببینیم صحبت کنیم.

اگر دقت کنید زمانی که یک سایت معمولی را با 90 درصد مرورگر های معروف دنیا باز میکنید شروع آدرس وبسایت با http که مخفف Hyper Text  Transfer Protocol میباشد و کنار آدرس نوشته شده Not Secure 

ssl چیست

اگر آدرس ما با https شروع شود و کلمه Not Secure تبدیل به یک قفل سبز شود قطعا ssl ما به درستی نصب شده است پس اگر سایتی را میبینید که این ویژگی را دارد مطمئن باشید که ssl در این سایت نصب شده است.

 

مفهوم ssl چیست

کلمه SSL مخفف Secure Socket Layer به معنای “لایه امن پروتکل” است.

یادتان هست مقاله را با فرق بین http و https شروع کردیم؟ پروتکل دقیقا همین است یعنی هرکجا از پروتکل آدرس صحبت کردیم یعنی همین

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

فرض کنیم شما در نقطه A هستید و سایت در نقطه B قرار دارد و شما اطلاعاتی را به سایت ارسال میکنید، در این بین یک هکر میتواند بین دو نقطه قرار گیرد و اطلاعات جابه جا شده را رصد کند.

چون تمامی اطلاعات در حالت http به صورت متن ساده plain text منتقل میشود و هر کسی میتواند آن را بخواند و متوجه شود ولی وقتی https که مخفف Hyper Text Transfer Protocol Secure است معرفی شد حتی سرویس دهنده های اینترنت نیز نمیتوانند اطلاعات مهم شما را استخراج کنند.

فرایند ssl

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

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

سال ۱۹۹۶ میلادی شرکت Netscape برای نقل و انتقال امن و رمزی اطلاعات ssl را ساخت و اکنون تقریبا تمام مرورگرهای استاندارد دنیا مثل فایر فاکس، اینترنت اکسپلورر، اپرا، گوگل کروم و سافاری از آن پشتیبانی می کنند.

تا چند سال پیش فقط وبسایت های خیلی مهم که با اطلاعات حساس در ارتباط بودند مثل بانک ها از ssl استفاده میکردند و از سایت های دیگر اگر میپرسیدید حتی نمیدانستند که ssl چیست و به چه دردی میخورد؟ ولی الان تقریبا تمام سایت هایی که حتی رمز عبوری را در سایت ذخیره میکنند ssl را جز اصلی سایتشان قرار داده اند.
یادتان هست که منظور ما از پروتکل دقیقا کجا بود؟ جالب است بدانید که پروتکل های ما دارای یک آدرس هستند که از طریق مسیر آن آدرس اطلاعات را جابه جا میکنند که به این آدرس پورت گفته میشود، پورت htpp عدد 80 و پورت https عدد 443 است.
 
 

روش دریافت ssl

برای داشتن ssl روی سایت شما دو راه بیشتر ندارید:

  1. گواهی ssl تهیه کنید
  2. گواهی ssl رایگان بگیرید

اول باید این نکته را بدانیم که ssl یک ابزار مدت دار شبیه دامنه و هاست است و ما ssl دائمی فعلا نداریم و به صورت گواهی (لایسنس) عرضه میشود یعنی ما یک گواهی ssl را به مدت یک سال تهیه میکنیم و بعد از یک سال میتوانیم مجدد تمدید کنیم.

گواهی ssl در انواع مختلف صادر میشود که شامل:

Let’s Encrypt : معروف به اس اس اس رایگان که به صورت سه ماهه عرضه میشود و کاملا رایگان با قابلیت تمدید است.

standard : به صورت پولی عرضه میشود معمولا هزینه زیادی ندارد و به صورت سالیانه قابل تهیه و تمدید است.

Wildcard : همه گواهی ها امکان نصب روی ساب دامنه مثلا test.maralhost.com را ندارد و این نوع گواهی صرفا جهت پوشش دادن سایت و ساب دامنه ها استفاده میشود.

Organization Validated یا (OV) : در این نوع گواهی نیازمند به ثبت شرکت و ترجمه مدارک هستید و اطلاعات شرکت شما در گواهی نمایش داده میشود و معتبر تر است.

Extended Validation یا (EV) : در این نوع گواهی نیازمند به ثبت شرکت و ترجمه مدارک هستید و اطلاعات شرکت شما در گواهی نمایش داده میشود و به جای قفل سبز اسم شرکت شما به کاربران نمایش داده میشود.

 

آموزش دریافت ssl

 

تهیه ssl رایگان

زمانی که قصد تهیه هاستی دارید و میخواهید Let’s Encrypt به صورت تمدید خودکار داشته باشید در مشخصات هاست به ssl رایگان حتما دقت کنید.

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

 

نصب ssl رایگان در سی پنل

برای اینکار وارد کنترل سی پنل میشویم از Security روی گزینه SSL/TLS Status کلیک میکنیم.

نصب ssl رایگان در سی پنل

در صفحه جدید لیست ssl های نصب شده یا دامنه های داخل سایت ها نمایش داده میشود، از طریق تیک کنار اسم دامنه مورد نظر را انتخاب میکنیم و اگر دقت کنید سه دکمه کنار هم داریم که آخرین گزینه آن Run AutoSSL است که روی آن کلیک میکنیم.

نصب ssl خودکار در سی پنل

یک پروسه در حد یک دقیقه ای فرایند نصب ssl خودکار طول خواهد کشید.

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

نصب ssl در سی پنل

 

نصب ssl رایگان در دایرکت ادمین

وارد دایرکت ادمین میشویم از بخش Account Manager روی گزینه SSL Certificates کلیک میکنیم.

نصب ssl رایگان در دایرکت ادمین

در این صفحه ما 5 تب که اشاره به انواع نصب ها دارد را میبینیم ولی روی Free & automatic certificate from Let’s Encrypt کلیک میکنیم.

نصب ssl خودکار در دایرکت ادمین

در این بخش ابتدا آدرس دامنه را وارد میکنیم و با آیتم های Key Size و

در نهایت در تب Paste a pre-generated certificate and key باید اطلاعات ssl + تاریخ انقضا را ببینیم.

اطلاعات ssl در دایرکت ادمین

 

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

وارد این سایت میشویم و آدرس سایتمان را در کادر مربوطه در عکس وارد میکنیم.

دریافت ssl رایگان

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

بعد از ورود روی گزینه New Certificate کلیک میکنیم.

ساخت ssl

وارد مراحل نصب میشویم، در این مرحله مجدد اسم سایت را وارد میکنیم و روی Next Step میزنیم.

اسم سایت در ssl

در این مرحله مدت زمان SSL را انتخاب میکنیم، پیشفرض و رایگان 90 روز قابل انتخاب است و 1 سال پولی عرضه میشود.

زمان SSL

در این مرحله پلن های SSL با تمامی امکانات به ما نشان داده میشود که پلن اول رایگان است پیشفرض انتخاب شده ما فقط Next Step را میزنیم.

پلن های SSL

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

از لیست یکی از ایمیل هارا انتخاب میکنیم و وارد ایمیل سایت میشویم و با لینک تایید مالکیت ما تایید میشود.

تایید SSL

بلافاصله در مرحله بعد با زدن Verify Domain بررسی میکند اگر تایید کرده باشیم فایل های ssl را به ما میدهد که اگر سوال برایتان پیش آمد که فایل ssl چیست باید بگوییم که در مرحله بعد مفصل توضیح دادیم.

تایید نهایی SSL

 

خرید ssl

شاید برایتان سوال شود که فرق پولی و رایگان بودن در ssl چیست ؟ خیلی فرق آنچنانی ندارند ولی ssl پولی در نسخه های سازمانی فرق بیشتری دارد و اینکه ssl رایگان را هر سه ماه باید تمدید کنید که شاید باید هر سه ماه به فکر باشید.

فرایند ssl های پولی به صورت دستی انجام میشود.

به شما بعد از طی کردن تمامی مراحل خرید 3 فایل به اسم های certificate.crt , ca_bundle.crt , private.key داده میشود که محتوا هر کدام شامل یک سری کد است.

برای نصب در سی پنل به پنل اصلی بر میگردیم و روی گزینه SSL/TLS کلیک میکنیم.

نصب ssl دستی در سی پنل

در این صفحه روی گزینه Manage SSL sites کلیک میکنیم.

آپلود ssl دستی در سی پنل

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

کد ssl دستی در سی پنل

 

در دایرکت ادمین نیز تقریبا پروسه به همین شکل است به همان بخش SSL Certificates که در مرحله رایگان بر میگردیم و در تب ها روی Paste a pre-generated certificate and key کلیک میکنیم.

آپلود ssl دستی در دایرکت ادمین

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

محتویات certificate.crt و ca_bundle.crt را در بخش آخر پشت سر هم وارد میکنیم.

 

منقضی شدن ssl

دقت کنید که اگر ssl سایت تمام شود باید سریعا آن را تمدید کنید چون در غیر این صورت سایت شما ناامن تشخصیص داده میشود و کاربران سایت با خطای زیر مواجه میشوند.

خطای ssl

 

نصب ssl در سایت

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

 

سایت وردپرسی

در سایت وردپرسی چندین راه وجود دارد که مفصل همه روش هارا توضیح میدهیم.

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

وردپرس از نظر ssl به دو بخش مدیریت سایت و بخش نمایشی سایت تقسیم میشود، اولین کاری که شما باید بکنید این است که در بخش مدیریت سایت ssl را فعال کنید برای این مورد وارد بخش فایل های سایت پوشه public_html میشوید و فایل wp-config.php را باز میکنید.

در خط بالایی That’s all, stop editing کد زیر را درج کنید.

 define('FORCE_SSL_ADMIN', true); 

حتما دقت کنید که در انتهای کد علامت ; درج شده باشد.

بعد از این مرحله وارد بخش مدیریت سایتتان شوید و از منو سمت راست گزینه تنظیمات -> عمومی را بزنید.

نشانی وردپرس (URL) و نشانی سایت (URL) که با http شروع شده اند را با https کنید و صفحه را ذخیره کنید.

تغییر آدرس وردپرس

طبیعی است که وردپرس بعد از ذخیره شدن شما را از حساب کاربریتان خارج میکند.

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

برای نصب کامل بدون مشکل به بخش افزونه ها -> افزودن میرویم و افزونه Really Simple SSL را نصب میکنیم.

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

افزونه really simple ssl

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

وقتی ما ssl را فعال میکنیم ممکن است افزونه های غیر استاندارد در سایت ما نصب باشد و برخی صفحات با مشکل مواجه شوند و اصطلاحا ما به خطای mixed content برخورد میکنیم اولین گزینه یعنی تأیید کننده محتوای مختلف را برای همین مورد فعال میکنیم.

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

پسوند 301 بیشتر برای ربات های گوگل استفاده میشوند که ما به آنها میفهمانیم صفحات سایت ما آدرسش عوض شده است.

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

حالا با ورود به سایت و رفرش شاهد قفل سبز و https خواهید بود.

 

ریدایرکت 301 دستی

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

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteCond %{HTTPS} off

RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

</IfModule> 

 

تست ssl

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

شروع میکند و از سرور های مختلف سراسر دنیا سایت مارا بررسی میکند و به ssl سایت ما امتیاز میدهد اگر اینجا رتبه A یا نهایتا B دریافت کنیم یعنی کارمان را خوب انجام داده ایم.

تست ssl

 

نصب و سئو

برای اینکه مشکلی از نظر سئو نداشته باشید باید به ابزار هایی مثل سرچ کنسول آدرس جدید سایتتان را معرفی کنید و مجدد سایت جدید را معرفی کنید.

برای اینکار وارد search console میشویم و لیست سایت های ما که سرچ کنسول دارند را باز میکنیم و روی Add property کلیک میکنیم.

تغییر آدرس سایت در ssl

مجدد سایتمان را اینبار با آدرس https وارد میکنیم و تمام تایید هارا انجام میدهیم.

سرچ کنسول در ssl

 

جمع بندی

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

رفع مشکل https در وردپرس پس از نصب

 

SSL چیست! ؟
مخفف Socket Secure Layer که اولین بار توسط شرکت Netscape طراحی شد و سپس مرورگرهای دیگر نیز از این پروتکل پشتیبانی کردند.

مشخصه بارز SSL بصورت https می‌باشد که شاید بارها در اینترنت مشاهده کرده باشید و به سادگی از آن گذر کرده باشید.

 

Secure Socket Layer, یا همان SSL یک تکنولوژی استاندارد و به ثبت رسیده برای تامین ارتباطی امن مابین یک وب سرور و یک مرورگر اینترنت است. این ارتباط امن از تمامی اطلاعاتی که ما بین وب سرور و مرورگر اینترنت (کاربر) انتقال می‌یابد , محافظت می‌کند تا در این انتقال به صورت محرمانه و دست نخورده باقی بماند SSL یک استاندارد صنعتی است و توسط ملیون‌ها وب سایت در سراسر جهان برای برقراری امنتیت انتقال اطلاعات استفاده می‌شود. برای اینکه یک وب سایت بتواند ارتباطی امن از نوع SSL را داشته باشد نیاز به یک گواهینامه SSL دارد.
حال سوالی که پیش می‌آید این است که این گواهینامه چیست !؟
زمانیکه شما می‌خواهید SSL را بر روی سرور خود فعال کنید سؤالات متعددی در مورد هویت سایت شما ( مانند آدرس سایت ) و همین طور هویت شرکت شما ( مانند نام شرکت و محل آن) از شما پرسیده می‌شود. آنگاه سرور دو کلید رمز را برای شما تولید می‌کند یک کلید خصوصی (Private Key) و یک کلید عمومی .(Public Key) کلید خصوصی به این خاطر , این نام را گرفته است , چون بایستی کاملاْ محرمانه و دور از دسترس دیگران قرار گیرد. اما در مقابل نیازی به حفاظت از کلید عمومی نیست و این کلید در قالب یک فایل درخواست گواهینامه یا Certificate Signing Request که به اختصار آنرا CSR می‌نامیم قرارداده می‌شود که حاوی مشخصات سرور و شرکت شما بصورت رمز است. آنگاه شما باسیتی که این کد CSR را برای صادرکننده گواهی‌نامه ارسال کنید. در طول مراحل سفارش یک SSL مرکز صدور گواهینامه درستی اطلاعات وارد شده توسط شما را بررسی و تایید می‌کند و سپس یک گواهینامه SSL برای شما تولید کرده و ارسال می‌کند.

 

نصب SSL بر روی سرور
(فرض بر این است که SSL را روی سرویس خود نصب کرده اید)
برای اینکه مطمئن شوید SSL بر روی سرور شما به خوبی نصب شده است، وب سایت خود را با آدرس https://yourdomain.com باز کنید. اگر وب سایت شما باز شد اما نوشته‌ها و قالب آن به هم ریخته بود و یا آیکون https در کنار آدرس بار سایتتان به رنگ نارنجی یا قرمز درآمده بود نگران نباشید در ادامه به رفع این مشکلات خواهیم پرداخت.

رفع مشکل https در وردپرس (ارور قرمز رنگ کنار آدرس سایت)
برای رفع این مشکل مراحل زیر را به ترتیب انجام دهید:
۱- وارد بخش مدیریت وردپرس شوید
۲- از بخش تنظیمات بر روی همگانی کلیک کنید
۳- مقادیر نشانی وردپرس (URL) و نشانی سایت (URL) را از http به https تغییر دهید.
۴- از طریق کنترل پنل هاست و یا با اتصال FTP ، فایل wp-config.php را ویرایش کنید و کدهای زیر را به آن اضافه کنید:

 
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && 
$_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
$_SERVER['HTTPS'] = 'on';

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