فعالسازی گواهینامه SSL با افزونه Really Simple SSl، یکی از مشکلاتی است که کاربران در ابتدای راهاندازی وبسایت خود یا در زمان انتقال سایت از یک سرویس میزبانی، بر روی سرویس میزبانی دیگر با آن مواجه میشوند.
فعالسازی گواهینامههای SSL در نگاه اول بسیار ساده بهنظر میرسد، اما دلایل مختلفی میتواند موجب بروز مشکلاتی در سایت شما شود که نتوانید به بهترین شکل، پروتکل HTTPS را بر روی سایت خود فعال کنید.
خطاهایی از جمله محتوای مختلط (Mixed Content) یا موارد دیگر از جمله خطاهایی هستند که در زمان فعالسازی پروتکل HTTPS بر روی وبسایت خود ممکن است با آنها روبهرو شوید. آیا راه حلی برای این خطاها در دسترس نیست؟
در دنیای برنامه نویسان تمامی مشکلات قابل حل هستند. خطاهای پروتکل HTTPS هم از این قاعده مستثنی نبودهاند و دیگر بهانهای برای مشکلات فعالسازی پروتکل HTTPS قابل پذیرش نیست!
بد نیست اشاره کنیم که گوگل صراحتا به فعالبودن پروتکل HTTPS بهعنوان یکی از لازمههای ایندکس شدن (Index)، سایتها در موتور جستجوی این شرکت اشاره کرده و گفته است که اگر از این پروتکل بر روی سایت خود استفاده نکنید، شانس بسیار کمی برای ورود به صفحه نتایج سرچ گوگل دارید!
بنابر درخواستهای همراهان آقای وب، تصمیم گرفتهایم که در این مقاله به بررسی یک ابزار مناسب برای حل مشکلات مربوط به فعالسازی گواهینامههای SSL در وردپرس بپردازیم. افزونه Really Simple SSL، یک افزونه شناختهشده در جامعهی کاربران سیستم مدیریت محتوای وردپرس است که با بیش از 5 میلیون نصب فعال در زمان نگارش این نوشته، توانسته بهخوبی خود را ثابت کند. در ادامهی این نوشته با بررسی کامل افزونه Really Simple SSL، با ما در تیم تحریریه آقای وب بلاگ همراه باشید.
چرا باید از افزونه Really Simple SSL استفاده کنیم؟
بسیاری از کاربرانی که اقدام به نصب گواهینامه SSL بر روی سایت خود نمودهاند و مشکل خاصی را در عملکرد پروتکل HTTPS بر روی سایت خود نمیبینند، با خود میگویند که چرا باید این افزونه را نصب کنم؟!
جواب ساده است، چراکه چشم ما نمیتواند بر همه چیز نظارت داشته باشد. اکثر کاربرانی که نیازی به نصب افزونه Really Simple SSL نمیبینند، به این دلیل است که فعال بودن آیکون قفل HTTPS را نشانه کارکرد کاملا صحیح پروتکل HTTPS در سایت خود میدانند؛ در صورتی که اینطور نیست!
یکی از رایجترین خطاهای مرتبط با فعالسازی گواهینامه SSL و پروتکل HTTPS، مربوط به خطای Mixed Content است.
در برخی موارد دیده میشود که بخشی از محتوای یک صفحه وب، همچون یک اسکریپت CSS یا حتی یک عکس، بهدرستی از طریق پروتکل HTTPS بارگذاری نمیشود و این میتواند کلیه زحمتهای شما را هدر دهد. اصطلاحا به این خطا “Mixed Content” یا «محتوای مختلط» گفته میشود و یکی از رایجترین خطاها در زمان بررسی یک صفحه وب از طریق ابزار “Inspect” در مرورگرهاست.
این خطا به شکل بالا در سربرگ “Console” صفحه Inspect به نمایش در میآید و میتواند بسیار آزاردهنده باشد. مشکل اینجاست که با وجود خطای Mixed Content، آیکون قفل معروف HTTPS در مروگر نمایش داده میشود ولی بخشی از محتوای صفحه شما با پروتکل HTTP بارگذاری میشود که تا زمانی که به ابزار Inspect مراجعه نکنید، متوجه آن نخواهید شد. این مسئله موجب میشود که آن صفحه از سایت شما نتواند امتیاز SEO لازم را به دست آورد و با وجود تلاشهای بسیار شما، جایگاه مناسبی را در صفحه سرچ گوگل به دست نیاورد.
در چنین شرایطی بهتر است که برای حل این مشکل و یافتن سایر مشکلاتی که از چشم شما پنهان ماندهاند، اقدام به نصب افزونه Really Simple SSL نمایید. چنانچه در ابتدای مسیر هستید و آشنایی کاملی با نحوه نصب افزونهها ندارید، میتوانید از «آموزش نصب افزونه در وردپرس با 3 روش مختلف» که پیش از این در آقای وب بلاگ منتشر شده است، کمک بگیرید.
فعالسازی گواهینامه SSL با افزونه Really Simple SSL
پس از نصب و فعالسازی افزونه Really Simple SSL به صفحه مربوط به این افزونه هدایت خواهید شد. این افزونه تنها یک صفحه دارد و برخلاف اکثر افزونههای وردپرس شامل چندین سربرگ مختلف نمیشود. خوشبختانه افزونه Really Simple SSL بهطور کامل به زبان فارسی ترجمه شده است و افرادی که از شناخت کافی نسبت به زبان انگلیسی نیز برخوردار نیستند، میتوانند به راحتی از این افزونه استفاده نمایند. لازم است اشاره کنیم که این افزونه دارای دو نسخه رایگان و حرفهای (با نیاز به پرداخت) میباشد، که در این نوشته ما به بررسی نسخه رایگان موجود در منبع وردپرس میپردازیم.
در اولین نگاه، چنانچه هیچ اقدامی در جهت فعالسازی گواهینامه SSL سایت خود انجام نداده باشید، با صفحهای مشابه صفحه زیر روبهرو خواهید شد.
در این صفحه با کلیک بر روی یکی از گزینههای «نصب گواهی SSL» یا «گواهی SSL را فعال کنید»، میتوانید به مرحله بعد بروید. با این کار صفحه جدیدی برای شما بازخواهد شد.
لازم است در همین ابتدای آموزش، اشاره کنیم که کاربرانی که اقدام به تهیه «گواهینامه SSL تجاری» نمودهاند یا قبلا از طریق آموزشِ «نصب گواهینامه SSL از طریق پنل دایرکت ادمین» اقدام به فعالسازی گواهینامه SSL بر روی سایت خود نمودهاند، نباید اقدامات گفتهشده در این آموزش را انجام دهند. این آموزش تنها مرتبط با نصب گواهینامه SSL رایگان شرکت Let’s Encrypt، از طریق افزونهی RSS میباشد.
این صفحه، اولین مرحله از فرآیند فعالسازی گواهینامه SSL با استفاده از افزونه Really Simple SSL میباشد. لازم است اشاره کنیم که گواهینامههای نصب شده از طریق این افزونه، همگی از نوع گواهینامههای رایگان Let’s Encrypt هستند.
این صفحه که با عنوان “System Status” معرفی شده است، به بررسی لازمههای سیستم برای فعالسازی گواهینامه SSL میپردازد. مواردی از جمله فعال بودن تابع CURL در سمت سرور، ورژن PHP سرویس میزبانی شما و پشتیبانی دامنه از امکان فعالسازی گواهینامه Let’s Encrypt، همگی از جمله مواردی هستند که در این صفحه مورد بررسی قرار میگیرند. چنانچه مشکلی در این مرحله شناسایی نشود، کلید «ذخیره کنید و ادامه دهید» برای شما فعال خواهد شد و میتوانید به مرحله بعد بروید. لازم است اشاره کنیم که در کلیه سرویسهای میزبانی آقای وب، این مرحله بهخوبی و بدون هیچ مشکلی به پایان میرسد و میتوانید با کلیک بر روی گزینه «ذخیره کنید و ادامه دهید» به مرحله بعد بروید.
تنظیمات اولیه گواهینامه SSL
در این مرحله وارد بخش تنظیمات عمومی میشوید.
در این صفحه باید اطلاعات پایه گواهینامه خود را وارد نموده و سایر موارد را بررسی و تایید نمایید. اولین مورد، ایمیل دامنه است. این بخش بهصورت پیشفرض با استفاده از ایمیل رسمی دامنه تکمیل شده و نیازی به تغییر ندارد. چنانچه هنوز برای وبسایت خود یک ایمیل رسمی با پسوند دامنه ایجاد نکردهاید، میتوانید از آموزش زیر کمک بگیرید.
آموزش ساخت ایمیل رسمی با پسوند آدرس دامنه
در مرحله بعدی باید موافقت خود با قوانین و مقررات Let’s Encrypt را اعلام نمایید. برای این کار، تنها کافیست که تیک گزینه “Terms & Conditions” را در حالت فعال قرار دهید. توجه داشته باشید که بدون تایید این قسمت نمیتوانید به مرحله بعد بروید!
در بخش بعدی باید وضعیت قابلیت “OCSP Stapling” را تعیین نمایید. عبارت OCSP، معادل اختصاری عبارت “Online Certificate Status Protocol” میباشد. در حقیقت هر بار که یک کاربر به سایت شما سر میزند، یک درخواست از سمت کاربر به سوی شرکت صادرکننده گواهینامه SSL ارسال میشود و تاریخ انقضا و وضعیت گواهینامه SSL را بررسی مینماید. این مسئله موجب میشود که یک تاخیر بسیار کوچک در روند پاسخدهی سرور سایت به کاربران ایجاد شود.
قابلیت OCSP Stapling، با ذخیره وضعیت گواهینامه SSL سایت شما بر روی سرور سایت، کاری میکند که وضعیت گواهینامه در بازههای زمانی طولانیتری بررسی شود و این درخواستها به ازای بازدید هر کاربر رخ ندهد. هرچند که این قابلیت کاربردی بهنظر میرسد اما در برخی سرورها و همچنین در برخی مرورگرها عملکرد صحیحی ندارد و میتواند باعث بروز مشکلاتی شود. از همین رو پیشنهاد میکنیم که با تیک زدن گزینه “OCSP Stapling”، این قابلیت را غیرفعال نمایید.
در بخش بعدی میتوانید آدرس دامنه خود را مشاهده کنید که بهصورت خودکار تکمیل شده است و امکان تغییر آن را ندارید.
نهایتا به گزینه “?Include alias domain too” میرسید که باید چک باکس مربوط به این گزینه را هم پر نمایید. با این کار، چه دامنه شما با استفاده از پیشوند www وارد شود و چه بدون آن، پروتکل ارتباطی کاربر با سرور از طریق پروتکل HTTPS خواهد بود.
بد نیست اشاره کنیم که در بخش “Hosting Provider” نیز، بزرگترین سرویسهای میزبانی جهانی قرار گرفتهاند که با انتخاب هر یک از آنها، افزونه Really Simple SSL، کانفیگ SSL را مطابق با شرایط مدنظر آن هاستینگ تنظیم میکند. از آنجایی که هیچ یک از ارائه دهندگان سرویسهای میزبانی ایرانی در این لیست قرار ندارند، آن را بدون تغییر رها کرده و بر روی کلید «ذخیره کنید و ادامه دهید» کلیک نمایید.
احراز مالکیت دامنه و سرویس میزبانی
پس از اینکه تنظیمات اولیه گواهینامه SSL خود را تنظیم نمودید، نوبت به احراز مالکیت دامنه میرسد. در این مرحله، افزونه Really Simple SSL، در اولین قدم برای احراز مالکیت سرویس میزبانی، اقدام به بررسی دسترسی دایرکتوری “welll_known.” مینماید. در نوار پیشرفت افزونه، این مرحله با عنوان Directories معرفی شده است.
چنانچه از سرویسهای میزبانی آقای وب استفاده میکنید، نمیتوانید این مرحله را از طریق مسیر Directories پشت سر بگذارید. در کلیه سرویسهای میزبانی آقای وب، بهمنظور افزایش امنیت کاربران، دسترسی مستقیم به دایرکتوری well_known. محدود شده است. از همین رو در مرحله Directories، با خطای بالا روبهرو خواهید شد. از آنجایی که این دسترسی توسط اکثر ارائهدهندگان سرویسهای میزبانی اشتراکی محدود شده است، افزونه Really Simple SSL در این مرحله به شما یک راهکار جایگزین پیشنهاد میکند.
افزونه Really Simple SSL پس از اینکه متوجه محدودیت دسترسی میشود، با اعلام این موضوع، به شما پیشنهاد میکند که از روش ایجاد رکورد در Domain Zone سایت خود برای احراز مالکیت دامنه و سرویس میزبانی اقدام نمایید. برای استفاده از این روش لازم است که بر روی کلید “Switch to DNS verification” کلیک نمایید. با این کار یک بخش جدید با عنوان “تایید DNS” به نوار پیشرفت افزونه اضافه خواهد شد و شما به این مسیر جدید انتقال خواهید یافت.
تایید مالکیت دامنه از طریق رکورد DNS
پس از کلیک بر روی کلید “Switch to DNS verification” پنجره جدیدی برای شما باز خواهد شد که ظاهری شبیه به تصویر زیر دارد. در این صفحه دو عبارت مقدار و دامنه را مشاهده میکنید که باید برای احراز مالکیت سرویس میزبانی خود، با استفاده از آنها یک رکورد TXT ایجاد نمایید.
ایجاد رکورد TXT بسته به ارائهدهنده سرویس میزبانی شما و پنل سرویس میزبانی (Cpanel، دایرکت ادمین و…) متفاوت خواهد بود، لذا در این نوشته ما تنها به بررسی نحوه ایجاد رکورد TXT در پنل دایرکت ادمین آقای وب بسنده میکنیم.
برای ایجاد رکورد TXT در سرویسهای میزبانی آقای وب، لازم است که در اولین مرحله وارد پنل دایرکت ادمین سایت خود شوید. در صورتی که نمیدانید چگونه باید وارد پنل دایرکت ادمین سایت خود شوید، میتوانید از لینک زیر استفاده کنید.
آموزش ورود به دایرکت ادمین
پس از ورود به پنل دایرکت ادمین وبسایت خود، بر روی گزینه “مدیریت DNS” کلیک کنید.
با این کار پنجره جدیدی برای شما باز خواهد شد که در آن میتوانید کلیه رکوردهای سایت خود را مشاهده نمایید. اکنون باید رکورد خواسته شده توسط افزونه Really Simple SSL را ایجاد نمایید. برای این کار تنها کافیست که از فضای زیرین این صفحه، عبارت “دامنه” را که با یک زیرخط (_) آغاز شده است، در Text Box اول، و عبارت “مقدار” را در تکست باکس مقابل آن وارد نمایید. برای این کار میتوانید از تصویر زیر کمک بگیرید.
توجه داشته باشید که برای ایجاد این رکورد، حتما باید از رکورد TXT استفاده نمایید. نهایتا تنها کافیست که بر روی کلید “افزودن” در مقابل رکورد TXT کلیک نمایید.
لازم است اشاره کنیم که بهدلیل ایرادات پدیدآمده در زمان راستچین سازی افزونه، ممکن است کمی گمراه شوید. بهخاطر داشته باشید که عبارت زیرخط (_)، حتما باید در ابتدای عبارت دامنه استفاده شود و در انتهای عبارت مربوط به دامنه نیز، باید حتما یک کاراکتر نقطه (.) مورد استفاده قرار گیرد. این دو مورد در تصویر بالا برای تاکید بیشتر با هایلایت زرد رنگ مشخص شدهاند.
اکنون که رکورد خواستهشده توسط افزونه Really Simple SSL را در پنل دایرکت ادمین آماده کردهاید، وقت آن رسیده که به مراحل فعالسازی SSL در صفحه افزونه بازگردیم.
در مرحله “تایید DNS” بر روی کلید “ذخیره کنید و ادامه دهید” کلیک نمایید. چنانچه رکورد ایجادشده توسط شما به درستی ایجاد شده باشد، تصویری مشابه زیر مشاهده خواهید کرد.
چنانچه هر پیامی غیر از تصویر بالا مشاهده کردید یا بهزبان سادهتر نتوانستید کلید “ذخیره کنید و ادامه دهید” را مشاهده نمایید، یعنی که رکورد ایجادشده توسط شما بهدرستی Lookup نمیشود. در این شرایط به شما پیشنهاد میکنیم که بین چند ساعت تا یک روز صبر کنید. گاها دیده میشود که با گذشت زمان این مشکل برطرف شده و رکورد ایجادشده توسط شما Lookup خواهد شد و میتوانید مرحله احراز مالکیت را پشت سر بگذارید. چنانچه با گذشت زمان هم مشکل شما برطرف نشد و نتوانستید عبارت “Successfully verified DNS record” را مشاهده نمایید، باید بهدنبال مشکل موجود بگردید.
در اولین مرحله رکورد ایجادشده توسط خودتان را بررسی نموده و ببینید که این رکورد، با رکورد خواسته شده توسط افزونه Really Simple SSL مطابقت کامل دارد یا خیر. اگر مشاهده کردید که همهچیز طبق موارد گفتهشده در این آموزش است، موضوع را با پشتیبانی سرویس میزبانی خود از طریق تیکت مطرح نمایید. همراهان آقای وب، پس از ورود به حساب کاربری خود، میتوانند با کلیک بر روی “این لینک” نسبت به ایجاد تیکت با موضوع SSL اقدام نمایند.
نهایتا پس از موفقیتآمیز بودن احراز مالکیت دامنه، در پنجره “Generation” بر روی گزینه “ذخیره کنید و ادامه دهید” کلیک نموده و به مرحله آخر میرویم.
نصب و راهاندازی گواهینامه SSL
پس از اینکه در مرحله Generation بر روی کلید “ذخیره کنید و ادامه دهید” کلیک نمودید، وارد مرحله بعدی، یعنی مرحله “نصب و راهاندازی” خواهید شد. در این مرحله به شما سه تکه کد داده میشود که در حقیقت اجزای مختلف گواهینامه “Lets Encrypt” سایت شما هستند. اما با این فایلها یا بهتر است بگوییم «کدها»، باید چکار کرد؟
این کدها باید در پنل کاربری مدیریت سایت شما باگذاری شوند. نحوه بارگذاری این تکه کدها در پنلهای مختلف متفاوت است، که در ادامهی این نوشته، ما نحوه استفاده از این تکه کدها در پنل دایرکت ادمین سایت آقای وب را آماده کردهایم. لازم است اشاره کنیم که این کار، آخرین اقدام در مراحل نصب گواهینامه رایگان Lets Encrypt با استفاده از افزونه Really Simple SSL میباشد.
برای یافتن محل بارگذاری این تکه کدها، لازم است که پس از ورود به پنل دایرکت ادمین سایت خود، از بخش تنظیمات پیشرفته، بر روی گزینه “گواهینامههای SSL” کلیک کنید. با این کار صفحه جدیدی برای شما باز خواهد شد.
کلیه تنظیمات قابل مشاهده در این صفحه، مربوط به تنظیمات SSL سایت شماست. در این صفحه سه چک باکس (یا بهتر است بگوییم radio button) در حاشیه سمت چپ پنل کاربری دیده میشود.
از میان این 3 کلید رادیویی، بر روی کلید کنار عبارت “وارد کردن کلید خصوصی و گواهینامه از پیش تولید شده” کلیک نمایید. با این کار فضای زیرین آن رنگ روشنتری پیدا میکند و در حقیقت قابلیت استفاده پیدا میکند. اکنون تنها کافیست که فایلهای مرتبط با گواهینامه SSL خود را در کادر قابل مشاهده در این صفحه بارگذاری نمایید.
برای این کار لازم است که مجددا به صفحه افزونه Really Simple SSL بازگردید و بر روی کلید «محتوا را کپی کنید» در زیر عبارت “کلید خصوصی (KEY)” کلیک نمایید. با این کار محتوای کلید خصوصی (Private Key) سایت شما در Clipboard ویندوز ذخیره خواهد شد.
اکنون تنها کافیست که به پنل دایرکت ادمین بازگشته و با استفاده از کلیدهای ترکیبی “Ctrl+V” یا کلیک راست کردن در آن پنجره و انتخاب گزینه “Paste”، کلید خصوصی خود را در کادر مربوطه وارد کنید. پس از این مرحله لازم است که مجددا به صفحه افزونه Really Simple SSL بازگردید و این بار بر روی کلید «محتوا را کپی کنید» در زیر عبارت “عنوان گواهینامه” کلیک نمایید.
تکه کد کپی شده در این مرحله را باید دقیقا در همان پنجره موجود در پنل دایرکت ادمین و در ادامهی تکه کد مربوط به کلیک خصوصی کپی نمایید. برای درک بهتر این موضوع به تصویر بالا نگاه کنید.
پس از پایان این مرحله، لازم است که بر روی کلید «ذخیره» کلیک کنید. با این کار کلید خصوصی و گواهینامه SSL شما بر روی سرویس میزبانیتان بارگذاری خواهد شد. پس از ذخیره این مورد، بر روی چک باکس “Force SSL with https redirect” در پایین این صفحه هم کلیک نمایید تا تیک بخورد و پس از آن بر روی کلید ذخیره در مقابل این گزینه هم کلیک نمایید.
پس از اقدامات قبلی لازم است که یک مرحله دیگر را در پنل دایرکت ادمین خود طی نمایید. مطابق با تصویر بالا، در صفحه گواهینامههای SSL بر روی عبارت “اینجا” کلیک کنید. با این کار یک صفحه جدید برای شما بازخواهد شد که تنها شامل یک جعبهی متن با مشخصهی “Certificate Authority SSL Certificate” میباشد.
قبل از هرکاری تیک گزینه “استفاده از یک گواهینامه CA” را در حالت فعال قرار دهید. پس از آن به صفحه افزونه Really Simple SSL بازگردید و بهعنوان آخرین مرحله، بر روی کلید «محتوا را کپی کنید» در زیر عبارت “Certificate Authority Bundle (CABUNDLE)” کلیک نمایید. اکنون مثل دو تکه کد قبلی، عبارت کپی شده را در جعبهی متن “Certificate Authority SSL Certificate” کپی نموده و بر روی کلید ذخیره (مطابق با تصویر) کلیک کنید.
تبریک میگوییم! اکنون سایت شما بدون هیچ هزینهای به یک گواهینامه معتبر Lets Encrypt مجهز شده است که علاوه بر افزایش قابل توجه امنیت سایت، موجب بهبود رتبه SEO سایت شما در نتایج سرچ گوگل میشود.
لازم است اشاره کنیم که همگام سازیِ تماموکمال گواهینامه SSL با تمامی اجزای مختلف سایت، ممکن است بین چند دقیقه تا چند ساعت زمان ببرد. در این زمان ممکن است که شاهد مشکلاتی در عملکرد گواهینامه SSL سایت خود باشید. مواردی همچون اینکه صفحات سایت شما با گواهینامه SSL بارگذاری میشوند اما در صفحات پیشخوان وردپرس همچنان صفحات بدون قفل SSL بهنمایش در میآیند.
برای حل این گروه از مشکلات که دلیل آنها بهروشنی مشخص نیست، لازم است که ابتدا برای مدت حداقل 1 روز صبر نمایید. پس از آن میتوانید با استفاده از مقالات موجود در بلاگ آقای وب در رابطه با “گواهینامه SSL”، نسبت به یافتن مشکل خود و راهحل آن اقدام نمایید. نهایتا چنانچه قادر به یافتن راهحل موردنیاز خود نبودید، میتوانید پس از ورود به پنل خود در سایت آقای وب، اقدام به ایجاد تیکت نموده و با کارشاسان فنی آقای وب در ارتباط باشید.
رفع خطای Mixed Content با استفاده از افزونه Really Simple SSL
در دومین بخش از آموزش کار با افزونه Really Simple SSL، به سراغ نحوه رفع یکی از رایجترین خطاهای گواهینامه SSL میرویم. خطای Mixed Content یکی از متداولترین خطاهایی است که پس از فعالسازی گواهینامه SSL ممکن است با آن مواجه شوید.
در برخی موارد دیده میشود که بخشی از محتوای یک صفحه وب، همچون یک اسکریپت CSS یا حتی یک عکس، بهدرستی از طریق پروتکل https بارگذاری نمیشود و این میتواند کلیه زحمتهای شما را هدر دهد. اصطلاحا به این خطا “Mixed Content” گفته میشود و یکی از رایجترین خطاها در زمان بررسی یک صفحه وب از طریق ابزار “Inspect” در مرورگرهاست.
این خطا به شکل بالا در سربرگ “Console” مرورگر به نمایش در میآید و میتواند بسیار آزاردهنده باشد.
با توجه به گزارشات کاربران، متوجه شدهایم که همراهانی که سایتهای خود را بر روی هاستهای آقای وب میزبانی میکنند، بسیار کمتر از سایر ارائه دهندگان میزبانی با خطای Mixed Content مواجه میشوند. علت این مسئله هم کانفیگ دقیق و پایدار سرویسهای میزبانی آقای وب است که هماهنگی بسیاری با سیستم مدیریت محتوای وردپرس و گواهینامههای SSL دارند. با این وجود تصمیم گرفتهایم که روش رفع خطای Mixed Content با استفاده از افزونه Really Simple SSL را نیز در این مقاله بررسی کنیم. شاید از میزان سادگی رفع این مشکل با استفاده از افزونه Really Simple SSL تعجب کنید!
پس از اینکه از طریق پیشخوان وردپرس و با طی کردن مسیر “تنظیمات > SSL” به پنل امکانات افزونه Really Simple SSL وارد شدید، چندین Toggle Button مختلف را میتوانید در پنجره تنظیمات مشاهده کنید. اگر به اولین گزینه این تنظیمات توجه کنید، میتوانید عبارت “ترکیب محتوای ثابت” را مشاهده نمایید. در اکثر موارد با نصب افزونه Really Simple SSL، این کلید بهصورت خودکار در حالت فعال قرار دارد، اما اگر خاموش است، آن را فعال کنید. در حقیقت این اولین راهکار افزونه Really Simple SSL برای رفع مشکل Mixed Content است. بر اساس تجربه میتوان گفت که در 80 درصد سایتهای وردپرسی، چنانچه تنظیمات SSL در سرور و سایت در حالت ایدهآل قرار داشته باشد، با فعال بودن این گزینه دیگر شاهد خطای Mixed Content در سایت خود نخواهید بود. اما اگر با این راهکار هم مشکل برطرف نشد باید چکار کنید؟
توسعه دهندگان افزونه Really Simple SSL، بهعنوان آخرین راهکار یک گزینه دیگر را هم در این پنل تعبیه کردهاند. “ترکیب آتشین محتوا ثابت با روش متفاوت” آخرین راهحل ارائه شده از طرف تیم Really Simple SSL برای کاربرانی است که با روش بالا نتوانستهاند مشکل Mixed Content را در سایت خود برطرف کنند.
با فعالسازی این گزینه، افزونه Really Simple SSL بهجای اتصال به هوک template_redirect، به هوک init متصل خواهد شد. این مسئله موجب میشود که در برخی موارد خطای Mixed Content برطرف شود. همانطور که توسعه دهندگان افزونه اشاره کردهاند، تا زمانی که شاهد خطای Mixed Content در سایت خود نیستید، گزینه “ترکیب آتشین محتوا ثابت با روش متفاوت” را در حالت فعال قرار ندهید.
فعالسازی یکی از قابلیتهای نسخه Pro به صورت دستی
هرچند که نسخه حرفهای افزونه Really Simple SSL قابلیتهای بسیار زیادی را در اختیار شما قرار میدهد، اما برخی از این قابلیتها بهصورت رایگان و با داشتن کمی دانش فنی قابل پیادهسازی هستند.
یکی از مهمترین قابلیتهای نسخه حرفهای (Pro) که در نسخه رایگان به آن اشاره شده است، هدرهای امنیتی (Security Headers) هستند. افزونه Really Simple SSL به شما میگوید که نمیتواند هدرهای امنیتی را در فایل htaccess. سایت شما پیدا کند و اگر مایل هستید که این هدرها را به سایت خود اضافه کنید، نسخه حرفهای را تهیه نمایید. شاید تعجب کنید اگر بدانید که حتی با داشتن این هدرهای امنیتی در سایت خود هم باز این پیام را مشاهده خواهید کرد و در حقیقت این یک پیام آماده و از پیشساخته است!
برای درک این موضوع، ما در ادامه با استفاده از آموزشهای قرار گرفته در سایت Really Simple SSL، به شما میگوییم که چطور میتوانید هدرهای امنیتی وبسایت خودتان را با توجه به نیازتان تنظیم کنید.
انواع هدرهای امنیتی و نحوه استفاده از آنها
پیش از هرچیز، لازم است که با مهمترین هدرهای امنیتی قابل استفاده در فایل htaccess. آشنا شوید. لازم است اشاره کنیم که مواردی که در ادامه بیان میشود، در عین سادگی، کارایی قابل توجهی دارند. در میان هدرهای امنیتی اشارهشده در افزونه Really Simple SSL، تنها هدر امنیتی “Permissions-Policy” است که نیاز به سطح دانش قابل توجهی برای کانفیگ (Config) دارد و مابقی موارد همگی تنها از طریق یک خط کد قابل اعمال هستند.
برای دسترسی به فایل htaccess. سایت خود، تنها کافیست که پس از ورود به پنل دایرکت ادمین، از میان گزینههای موجود، گزینه “مدیریت فایل” را انتخاب نمایید. با این کار سیستم مدیریت فایل پنل دایرکت ادمین برای شما باز خواهد شد. در میان دایرکتوریهای موجود در این صفحه، بر روی دایرکتوری “public_html” دو بار کلیک کنید تا باز شود. در این دایرکتوری میتوانید فایل “htaccess.” سایت خود را پیدا کرده و آن را ویرایش کنید.
پیش از ادامهی کار، لازم است که از فایل htaccess. سایت خود یک بکاپ تهیه کنید. توجه داشتهباشید که تهیه نسخه پشتیبان از فایل htaccess. بسیار ضروری است. شما با دانلود این فایل و ذخیره آن بر روی سیستم شخصی خود، یا کپی کردن تمامی رشته کدهای این فایل در یک فایل متنی همچون یک فایل txt میتوانید اطمینان حاصل کنید که در صورت وقوع هر اتفاق برنامهریزی نشده یا مشکلی، میتوانید وضعیت را به شکل سابق بازگردانید. برای این کار تنها کافیست که در صورت وقوع مشکل، فایل htaccess. موجود بر روی سرویس میزبانی خود را حذف کرده و فایل htaccess بکاپ خود را مجددا بر روی هاست آپلود کنید.
در ادامه هدرهای امنیتی ارائه شده توسط افزونه Really Simple SSL Pro آورده شده است. برای فعال کردن هر یک این هدرهای امنیتی، تنها کافیست که تکه کد مربوط به آن را در فایل htaccess. سایت خود قرار دهید.
پیشنهاد میکنیم که پیش از قرار دادن کدها، با استفاده از کاراکتر شارپ (#) یک کامنت ایجاد کرده و سپس کدهای آن را پس از کامنت مربوطه قرار دهید. کامنت نویسی به شما کمک میکند که راحتتر متوجه کارکرد کدهای اضافه شده به فایل htaccess. سایت خود شوید. برای درک بهتر این موضوع میتوانید تصویری که در انتهای این بخش ارائه شده است را مشاهده نمایید.
HSTS
زمانی که این هدر امنیتی بر روی سایت شما تعریف شده باشد، مرورگر کاربر متوجه میشود که تمامی درخواستهای خود را باید بر روی پروتکل HTTPS ارسال نماید. کاربرد این هدر برای زمانی است که هکرها تصمیم میگیرند که با استفاده از قابلیت ریدایرکت، اطلاعات کاربر را از طریق یک سایت واسطه (که از پروتکل HTTPS استفاده نمیکند) به دست آورند. هدر HSTS موجب میشود که مرورگر با اطلاع از وجود این هدر، تمامی درخواستهای خود را بر روی بستر HTTPS ارسال نماید و در نتیجه هکر نمیتواند به هدف خود دست یابد.
برای افزودن این هدر امنیتی به سایت خود، تنها کافیست که تکه کد زیر را به فایل htaccess. موجود در دایرکتوری public_html اضافه نمایید.
Header always set Strict-Transport-Security: "max-age=31536000" env=HTTPS
Upgrade-Insecure-Requests
علاوه بر تمامی روشهایی که پیش از این برای اجبار ارسال درخواستها از طریق پروتکل HTTPS معرفی کردهایم، هدر Upgrade-Insecure-Requests، نیز یک روش دیگر است. وجود این هدر در فایل htaccess. سایت شما موجب میشود که کلیه درخواستها در سطح دامنهی شما از طریق پروتکل HTTPS فراخوانی شوند. استفاده از این هدر در برخی موارد میتواند مشکلات Mixed Content را برطرف نماید.
برای افزودن این هدر امنیتی به سایت خود، تنها کافیست که تکه کد زیر را به فایل htaccess. موجود در دایرکتوری public_html اضافه نمایید.
Header always set Content-Security-Policy "upgrade-insecure-requests"
X-Content-Type-Options
این هدر مرورگر را وادار میسازد تا از حدس زدن (Guessing) فرمت فایلها پیشگیری کند. اگر فایلی از طریق سرور با فرمت php قرار است بارگیری شود، این فایل حتما باید با همین فرمت در اختیار کاربر قرار گیرد و نه فرمتی دیگر (همچون exe).
این هدر موجب میشود که از اجرای (Execute) فایلهای نامشخص در مرورگر کاربر پیشگیری شود.
برای افزودن این هدر امنیتی به سایت خود، تنها کافیست که تکه کد زیر را به فایل htaccess. موجود در دایرکتوری public_html اضافه نمایید.
Header always set X-Content-Type-Options "nosniff"
X-XSS-Protection
این هدر امنیتی بهطور کلی مانع از وقوع حملات XSS میشود. در حملات XSS، هکر سعی میکند که در زمان تبادل اطلاعات میان سرور سایت و کاربر، به بستههای داده دسترسی پیدا کرده و آن ها را تغییر داده یا از آن خود کند.
برای افزودن این هدر امنیتی به سایت خود، تنها کافیست که تکه کد زیر را به فایل htaccess. موجود در دایرکتوری public_html اضافه نمایید.
Header always set X-XSS-Protection "0"
X-Frame-Options
استفاده از هدر امنیتی X-Frame-Options موجب میشود که هیچ یک از آدرسهای سایت شما قابل بارگیری در قالب یک iframe نباشد. اگر تازه شروع به فعالیت در دنیای توسعه وب کردهاید، ممکن است که با مفهوم iframe آشنایی نداشته باشید.
سادهترین مثال برای شناخت iframe ها، سایت نماد اعتماد الکترونیک است. همانطور که در تصویر بالا مشاهده میکنید، هر سایتی که نماد اعتماد الکترونیک (E-namad) دریافت میکند، از یک صفحه اعتماد در سایت این سازمان بهرهمند میشود که در آن میزان اعتبار سایت، سرویسهای ارائه شده و… درج شدهاند. در این صفحات، صفحه Home سایت، در قالب یک iframe بارگذاری میشود که نسبتا جذاب است و علاوهبر افزایش زیبایی صفحه اعتماد سایت، موجب میشود که کاربر با مشاهده صفحه Home سایت، از تطابق نماد اعتماد با سایت مدنظر خود مطلع شود.
مثل هر قابلیت دیگری در زمان توسعه وب، فعال بودن X-Frame-Options نیز دو جنبه خوب و بد دارد. جنبه خوب آن را در بند قبلی بررسی کردیم، اما جنبه بد این قابلیت کجا نمایان میشود؟
نوعی از کلاهبرداریهای اینترنتی وجود دارد که در جهان با نام “clickjacking” شناخته میشود. توضیح این نوع از کلاهبرداری کمی دشوار است، اما به زیان ساده باید گفت که شخص کلاهبردار در این روش، از پوسته یک سایت در قالب iframe استفاده میکند تا کاربران را به مسیر دلخواه خود هدایت کند.
بهعنوان مثال، در یک صفحه وب مشاهده میکنید که به شما یک کد تخفیف ارزشمند نشان داده میشود و از شما خواسته میشود که برای دریافت این کد تخفیف، بر روی یک دکمه کلیک کنید. با بررسی آدرس سایت، متوجه میشوید که قبلا هم به این سایت سر زدهاید و به آن اعتماد دارید، بنابراین بر روی آن دکمه کلیک میکنید، اما متوجه هیچ تغییری نمیشوید. در همین زمان ممکن است که پیامک برداشت وجه از حساب خود را دریافت کنید! شاید تا الان حدس زده باشید که هکر در این فرآیند، توانسته با استفاده از متد clickjacking، به مشخصات کارت اعتباری شما دست پیدا کند.
وظیفه مدیران سایت این است که مانع از وقوع چنین اتفاقاتی برای کاربران خود شوند. تکه کد زیر، بهصورت کلی مانع از بارگذاری تمامی صفحات سایت شما در قالب iframe میشود.
Header always set X-Frame-Options: "SAMEORIGIN"
همانطور که پیش از این هم اشاره کردیم، با اضافه کردن تکه کد بالا به فایل htaccess. خود، دیگر سایت شما در هیچ قالب آیفریمی قابل بارگذاری نخواهد بود؛ از همین رو دیگر نه شما و نه کاربرانتان نمیتوانید پیشنمایش سایت خود را در سایت نماد اعتماد الکترونیکی مشاهده کنید.
نهایتا چنانچه تمامی کدهای بالا را به فایل htaccess. سایت خود اضافه کردید، فایل شما مشابه با تصویر زیر خواهد بود.
دو خط سبزرنگ موجود در تصویر که با کاراکتر شارپ (#) آغاز میشوند، نشانگر ابتدا و انتهای کدهای ما هستند. میان این دو خط، کدهای اصلی قرار میگیرند، که مطابق با گفتههای بالا، هرکدام عملکرد مخصوص خود را دارند.
لازم است اشاره کنیم که هر زمان که تصمیم به غیرفعالسازی یکی از هدرهای امنیتی گرفتید، کافیست که در ابتدای آن یک کاراکتر شارپ قرار دهید. با این کار این خط کد تبدیل به یک کامنت خواهد شد و دیگر وبسرور سایت شما اقدام به بررسی و اعمال آن نخواهد کرد.
بررسی وضعیت سیستم
نهایتا به آخرین قابلیت افزونه Really Simple SSL رسیدیم.
در پنجره “انجمن پشتیبانی” در صفحه اصلی این افزونه، گزینهای قرار گرفته که با کلیک بر روی آن، یک فایل TXT در مرورگر شما دانلود خواهد شد. این کلید با عبارت “دانلود وضعیت سیستم” مشخص شده است.
اگر این فایل متنی را باز کنید، میتوانید در کمتر از یک دقیقه، خلاصهای کاربردی از وضعیت گواهینمامه SSL سایت خود و عملکرد افزونه Really Simple SSL را مشاهده نمایید.
مهمترین نکات موجود در این فایل را مطابق با تصویر بالا شمارهگذاری کردهایم و در ادامه به مفهوم هریک از این موارد میپردازیم.
- اولین گزینه نشاندهنده معتبر بودن گواهینامه SSL ثبت شده در سرور سایت شماست. همانطور که مطلع هستید، هر گواهینمامه SSL دارای یک مدت اعتبار است و پس از آن منقضی میشود. عبارت “Valid” نشاندهنده معتبر بودن گواهینامه SSL سایت شماست. با اتمام اعتبار زمان گواهینمامه و عدم تمدید آن، قفل SSL سایت شما از بین خواهد رفت و بهجای آن یک علامت تعجب قرار خواهد گرفت.
- دومین مورد نشاندهنده وضعیت فعال یا غیرفعال بودن گواهینامه SSL بر روی سایت شماست. عبارت “Enabled” بهمعنای فعال بودن گواهینمامه SSL است.
- سومین مورد، نشان دهندهی فعال بودن گزینه “ترکیب محتوای ثابت” در پنل تنظیمات افزونه Really Simple SSL است. در رابطه با این گزینه در بخش رفع خطای Mixed Content” توضیحات کافی ارائه شده است.
- چهارمین مورد هم نشانگر وضعیت “ترکیب آتشین محتوا ثابت با روش متفاوت” در پنل تنظیمات این افزونه است.
بد نیست اشاره کنیم که وجود هر یک از عبارات آغاز شده با کاراکتر ستاره “*” در متن وضعیت سیستم، نشانگر فعال بودن یکی از تنظیمات موجود در افزونه Really Simple SSL است. با غیرفعالسازی هر از یک گزینههای تنظیمات، عبارت مربوط به آن از محتوای فایل وضعیت سیستم حذف خواهد شد.
سخن پایانی
در این مقاله از آقای وب بلاگ، به بررسی کامل افزونه Really Simple SSL و تمامی امکانات آن پرداختیم. با استفاده از این افزونه SSL سایت خودمان را فعال کردیم، مشکلات Mixed Content را رفع کردیم و نهایتا به پیشنهاد افزونه، اقدام به فعالسازی برخی هدرهای امنیتی بر روی سایت خود نمودیم.
افزونه Really Simple SSL بهترین دستیار هر مدیر سایت برای مدیریت تمامی کارهای مربوط به SSL است. اکنون که با صفر تا صد کار با این افزونه آشنا شدهاید، میتوانید بهراحتی و تنها با چند کلیک، گواهینامه SSL وبسایت خود را مدیریت کنید.
نهایتا امیدواریم که از این نوشته بهره کافی را برده باشید. هدف ما در تیم آقای وب، پاسخگویی به سوالات و برطرف کردن مشکلات اولیه شماست. پس چنانچه سوالی در رابطه با این نوشته دارید، از طریق بخش ارسال نظرات در پایین این برگه با ما در ارتباط باشید.
موفقیت همراه راهتان باد.
5
9
رای ها
امتیازدهی به مقاله
URL Copied