اگر وب‌ سایت‌تان دارای ویژگی است که در کنسول جستجوی گوگل تایید شده است و وب‌ سایت توسط HTTPS ایمن نشده، احتمالاً اخیراً با چنین پیامی در داشبورد خود مواجه شده‌اید:

اخطار گوگل به مالک وب سایت برای امنیت سایت HTTPS

در این پست آموزش سئو به شرح این موضوع خواهیم پرداخت. پس از ماه‌ها صحبت و گمانه‌زنی سرانجام گوگل طرح خود را مبنی بر امن‌تر کردن وب توسط HTTPS اجرا کرد. گرچه که HTTPS در گذشته فقط برای سایت‌های تجارت‌ الکترونیک یا سایت‌هایی که دارای عملکرد لاگین بودند دغدغه محسوب می‌شد، اما این به روز رسانی اخیر به طور قابل توجهی بر روی اکثر سایت‌ها تاثیر می‌گذارد. اکثر سایت‌ها دارای صفحه “تماس” (یا چیزی شبیه به آن) هستند که شامل اطلاعات تماس یا یک فرم اشتراک است. این فرم‌ها تقریباً همیشه حاوی فیلدهایی هستند که باید توسط متن پر شوند درست مانند آن‌هایی که گوگل در پیام خود در بالا در موردشان هشدار داده است. هشدار ” NOT SECURE” در حال حاضر در سایت‌هایی ظاهر می‌شود که اطلاعات پرداخت یا پسورد‌ها را جمع‌آوری می‌کنند اما نا امن هستند. این هشدار چیزی شبیه به شکل زیر است که در نوار URL ظاهر می‌شود :

نحوه برخورد با صفحات HTTP

حالا که این هشدار برای درصد بیشتر وب نمایش داده می‌شود، وب‌مسترها دیگر نمی‌توانند از به کارگیری HTTPS سر باز زنند. متاسفانه توصیه گوگل به وب‌مسترها برای حل این مشکل به اندازه‌ای مبهم و غیر مفید است که نمی‌توانید تصور کنید :

چگونه باید این مشکل را حل کرد :

به HTTPS نقل مکان کنید

برای جلوگیری از ظاهر شدن پیام ” NOT SECURE ” در هنگام بازدید کاربران Chrome از سایت شما، فقط کافیست تا داده‌های کاربری را از صفحاتی که از HTTPS استفاده می‌کنند جمع‌آوری کنید.

با تشکر از گوگل…

پیاده‌سازی HTTPS کار ساده‌ای نیست. واشنگتن پست یک مقاله در وبلاگ حود منتشر کرد که در آن روند ۱۰ ماهه انتقال وب‌ سایت‌شان به HTTPS را در سال ۲۰۱۵ توضیح داده بود و سایت‌های متعددی (از جمله Moz) پس از نقل مکان آن‌ها نوسانات ترافیک عمده‌ای را گزارش کردند. زمان و منابعی که برای مهاجرت به HTTPS نیاز است، سرمایه‌گذاری کمی نیست، در مورد پیاده‌سازی اساسی یک وب‌ سایت صحبت می‌کنیم.
علیرغم وجود این منابع، گوگل هم‌دردی کمی را برای این مشکل وبمسترها نشان داده است.

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

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

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

۱- پیاده‌سازی سنتی HTTPS

۲- رمزگذاری

۳- Cloudflare

روش ۱ : پیاده‌سازی سنتی HTTPS

پیاده‌سازی سنتی HTTPS با خرید یک گواهینامه SSL از یک ارائه‌دهنده معتبر مانند Digicert یا Comodo آغاز می‌شود (تذکر: اگر سایتی که گواهینامه‌های SSL می‌فروشد توسط HTTPS امن نشده، از آن‌ها خریداری نکنید!). (توجه داشته باشید که گوگل این هفته اعلام داشت که دیگر به گواهینامه‌های صادر شده توسط Symantec اعتماد ندارد، که این شامل برندهایی نظیر Thawte، VeriSign، Equifax، GeoTrust و RapidSSL می‌شود).
پس از آن باید گواهینامه خود را توسط اعتباری که از “درخواست امضای گواهینامه (CSR) ” خریداری کرده‌اید تایید کنید، این تاییدیه نشان دهنده این است که شما سایتی را که مدعی اداره آن هستید، مدیریت می‌کنید.
در این مرحله گواهینامه SSL شما قانونی می‌شود اما هنوز هم باید آن را در سایت خود پیاده‌سازی کنید. سایت Namecheap یک مقاله عالی در مورد چگونگی نصب گواهینامه‌های SSL برای انواع سایت‌های مختلف دارد. هنگامی که گواهینامه SSL نصب شد سایت‌تان امن شده است و می‌توانید گام‌های دیگری را برای فعال‌سازی HSTS یا بازنویسی HTTPS بردارید. [ چرا و چگونه باید وب سایت خود را امن تر کنید؟ ]

مزایا

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

۲- قابل تنظیم است. یکی از ویژگی‌های پیاده‌سازی SSL به صورت کامل این است که می‌توانید یک گواهینامه SSL با قابلیت تمدید اعتبار را خریداری کنید. این نه تنها موجب سبز رنگ شدن قفل شما در نوار مرورگر می‌شود بلکه برای مطمئن ساختن بازدیدکنندگان از امنیت سایت‌تان شامل نام شرکت شما نیز هست.

۳- پیاده‌سازی آن در بین زیردامنه‌های متعدد آسان‌تر است. اگر دارای زیردامنه‌های متعدد هستید چیزی که احتمالاً برای پیاده‌سازی HTTPS نیاز دارید یا یک گواهینامه SSL جداگانه برای هر زیردامنه است یا یک گواهینامه wildcard برای همه انواع دامنه‌های شما. اگر می‌خواهید امنیت دامنه‌های مختلفی را برقرار کنید، سرویس سنتی SSL اغلب ساده‌ترین راه برای نصب گواهینامه wildcard است.

معایب

۱- گران است. گرچه ممکن است بسته به پیچیدگی سایت‌تان گواهینامه‌های اصلی SSL تا کمتر از ۱۵۰ دلار نیز موجود باشند اما این هزینه‌ها می‌توانند در صورت نیاز به ویژگی‌های امنیتی پیشرفته‌تر مانند شبکه CDN و … به سرعت تا چندین هزار دلار برسند. این شامل هزینه توسعه‌دهندگانی که مسئول پیاده‌سازی گواهینامه SSL هستند نمی‌شود که خود این هزینه نیز می‌تواند دامنه گسترده‌ای داشته باشد.

۲- زمان پیاده‌سازی. همانطور که در بالا گفتم ۱۰ ماه طول کشید تا واشنگتن پست بتواند به HTTPS کوچ کند. شرکت‌های دیگر نیز دوره زمانی مشابهی را گزارش کرده‌اند، مخصوصاً برای وب‌سایت‌های بزرگتر و پیچیده‌تر. فهمیدن اینکه هنگام پیکربندی سایت باید چه مشکلاتی را از سر راه بردارید دشوار است. پس اگر بخواهید با پیاده‌سازی استاندارد پیش بروید انتظار می‌رود که باید زمان زیادی را صرف حل این مشکلات کنید.

روش ۲ : رمزگذاری (Let’s Encrypt)

رمزگذاری (Let’s Encrypt) یک سرویس غیرانتفاعی رایگان است که توسط گروه تحقیقات امنیت اینترنت (Internet Security Research Group) برای ارتقاء امنیت وب ارائه می‌شود، این گروه گواهینامه‌های SSL رایگان را در اختیار ما قرار می‌دهد. پیاده‌سازی رمزگذاری بسیار شبیه به پیاده‌سازی سنتی HTTPS است. هنوز هم نیاز به اعتباربخشی گواهینامه دارید. گواهینامه SSL را بر روی سرور خود نصب کنید، سپس بازنویسی‌های HSTS یا HTTPS را فعال کنید. گرچه پیاده‌سازی رمزگذاری از طریق سرویس‌هایی نظیر Certbot بسیار آسان‌تر است، زیرا کد پیاده‌سازی مورد نیاز برای نرم‌افزارهای ویژه و پیکربندی سرور را فراهم می‌کند.

مزایا

۱- رایگان است. هیچ هزینه‌ای ندارد. هیچ‌کدام از جزئیات در آن مخفی نیست.

۲- سهولت در پیاده‌سازی. پیاده‌سازی رمزگذاری SSL در سایت اغلب بسیار ساده‌تر از پیاده‌سازی سنتی HTTPS است. گرچه که به سادگی Cloudflare نیست. ساده بودن پیاده‌سازی موانع فنی بسیاری را برای افرادی که به دنبال نصب گواهینامه SSL هستند برطرف می‌کند.

۳- امنیت کامل. در این روش نیز درست مانند پیاده‌سازی سنتی HTTPS تمام ارتباط میان بازدیدکننده سایت و سرور سایت کاملاً امن است و هیچ امکانی برای ایجاد یک ارتباط خطرناک وجود ندارد.

معایب

۱- مشکل سازگاری. رمزگذاری با چندین پلتفرم ناسازگار است، اگرچه آن پلتفرم‌هایی که با آن‌ها سازگار نیست منبع عمده ترافیک برای سایت شما نیستند (Blackberry، Nintendo 3DS و …).

۲- گواهینامه‌های ۹۰ روزه. در حالیکه گواهینامه‌های SSL سنتی اغلب برای یک سال یا بیشتر اعتبار دارند اما گواهینامه‌های رمزگذاری (Let’s Encrypt) فقط ۹۰ روز اعتبار دارند و هر ۶۰ روز پیامی را مبنی بر تجدید اعتبار ارسال می‌کنند. فراموش کردن تجدید اعتبار گواهینامه می‌تواند سایت‌تان را در موقعیت خطر قرار دهد.

۳- امکان سفارشی کردن محدود. رمزگذاری (Let’s Encrypt) فقط گواهینامه‌های اعتبار دامنه را ارائه می‌دهد، یعنی نمی‌توانید گواهینامه‌ای خریداری کنید که همیشه موجب سبز شدن گواهینامه SSL در نوار مروگر شود. همچنین (Let’s Encrypt) در حال حاضر گواهینامه‌های wildcard را ارائه نمی‌دهد تا بتوانید همه زیردامنه‌های خود را امن کنید، گرچه اعلام کرده‌اند که این امکان تا ژانویه ۲۰۱۸ فراهم می‌شود.

روش ۳ : Cloudflare

این روش پیاده‌سازی محبوب من است زیرا فعال‌سازی آن بسیار ساده است. Cloudflare یک سرویس SSL انعطاف‌پذیر را ارائه می‌دهد که تقریباً همه دشواری‌های پیاده‌سازی مستقیم گواهینامه SSL بر روی سایت را از بین می‌برد. Cloudflare در عوض یک نسخه ذخیره شده از وب‌سایت شما را بر روی سرورهای خود میزبانی کرده و ارتباط بازدیدکنندگان سایت را از طریق حفاظت SSL خودشان امنیت می‌بخشد. می‌توانید چگونگی این امر را در تصویر زیر ببینید :

Cloudflare با انجام این کار این فرآیند را تا جایی که ممکن است آسان ساخته. همه کاری که باید انجام دهید این است که سوابق DNS خود را به روز رسانی کنید تا بتوانید به نام‌های سرور Cloudflare اشاره کنید. به همین سادگی انجام شد. این روش نیز مانند Let’s Encrypt کاملاً رایگان است.

مزایا

۱- رایگان است. هیچ هزینه‌ای ندارد. هیچ جزئیات پنهانی در آن وجود ندارد. اگر وارد یکی از طرح‌های پولی Cloudflare شوید، ویژگی‌های پیشرفته بیشتری را ارائه می‌دهد اما سرویس SSL پایه کاملاً رایگان است.

۲- پیاده‌سازی آن بسیار آسان است. همانطور که در بالا نیز گفتم همه چیزی که برای پیاده‌سازی سرویس SSL در Cloudflare نیاز است ایجاد یک حساب کاربری و به روز رسانی سوابق DNS است. هیچ به روز رسانی برای پیکربندی سرور نیاز نیست و نیاز نیست تا زمانی را صرف حل کردن مشکلات اضافی پیکربندی کنید. به علاوه می‌توان بازنویسی‌های HSTS و HTTPS را از طریق داشبورد Cloudflare به طور مستقیم انجام داد بنابراین تقریباً هیچ کاری به عهده شما نیست.

۳- بهینه‌سازی سرعت صفحه (PageSpeed). پیاده‌سازی HTTPS با استفاده از Cloudflare علاوه بر امنیت SSL چندین سرویس مازاد دیگر را فراهم می‌کند که می‌توانند امتیازهای PageSpeed (سرعت صفحه) و زمان بارگذاری صفحه را حفظ کنند. درحالیکه پیاده‌سازی HTTPS یا Let’s Encrypt می‌توانند تاثیراتی منفی بر روی زمان بارگذاری صفحه سایت داشته باشند. Cloudflare قابلیت کوچک کردن خودکار JS، CSS و HTML را دارد؛ از صفحات موبایل سریع (AMP) پشتیبانی می‌کند و از Rocket loader برای سرعت بخشیدن به بارگذاری JS استفاده می‌کند. همه این ویژگی‌ها (با حساب اینکه Cloudflare یک نسخه ذخیره شده از وب‌سایت شما را به بازدیدکنندگان نشان می‌دهد) از افزایش زمان بارگذاری صفحه جلوگیری می‌کند.

معایب

۱- رمزگذاری ناقص. همانطور که در تصویر بالا می‌بینید Cloudflare ارتباطی که میان بازدیدکننده و نسخه ذخیره شده سایت بر روی Cloudflare وجود دارد را رمزگذاری می‌کند، اما ارتباطی که میان سایت و سرور وجود دارد را رمزگذاری نمی‌کند. درحالیکه این بدان معناست که بازدیدکنندگان هنگام بازدید از سایت شما احساس امنیت خواهند کرد، اما هنوز شانس این وجود دارد که ارتباط سرور خطرناک باشد. گرچه می‌توانید با ارتقاء طرح پیاده‌سازی SSL به کامل (Full) این تنظیمات را انجام دهید اما این امکان بخشی از سرویس رایگان نیست.

۲- نگرانی‌های امنیتی. متاسفانه Cloudflare در اوایل امسال هک شد و اطلاعات کاربری بسیاری از آن به سرقت رفت. در حالیکه ظاهراً از آن زمان به بعد امنیت خود را بیشتر کرده و این مشکل را حل کرده‌اند اما هنوز مهم است که از این توسعه آگاه باشید.

۳- کمبود امکان سفارشی‌سازی. سرویس رایگان SSL در Cloudflare نیز درست همانند Let’s Encrypt هیچ‌گونه نوار سبز SSL را برای سایت‌تان نشان نمی‌دهد. در حالیکه می‌توانید با ارتقاء طرح SSL خود به Full (کامل) از امکانات این عملکرد بهره‌مند شوید اما این سرویس دیگر رایگان نیست.

بهترین نوع پیاده‌سازی HTTPS کدام است؟

این موضوع واقعاً به سایت شما بستگی دارد. سایت‌های کوچکی که فقط به امنیت کافی نیاز دارند تا گوگل آن‌ها را در Chrome مجازات نکند، می‌توانند از Cloudflare استفاده کنند. همین طرح برای آژانس‌هایی که توصیه‌های HTTPS را به مشتریانی ارائه می‌دهند که کنترل توسعه سایت را در دست ندارند نیز مناسب است. از سوی دیگر سایت‌های تجارت الکترونیک و انتشارات عمده نیازمند پیاده‌سازی HTTPS هستند که از طریق راه‌های سنتی کاملاً قابلیت سفارشی کردن را داشته باشد (یا از طریق گواهینامه wildcard در Let’s Encrypt، که این امکان سال آینده به آن اضافه می‌شود). در نهایت این شما هستید که باید تصمیم بگیرید کدام روش پیاده‌سازی مناسب موقعیت شماست.