برای نصب SSL در وردپرس، تنها فعالسازی گواهی در هاست کافی نیست؛ بلکه باید ساختار لینکهای سایت را نیز بهطور کامل از HTTP به HTTPS تغییر دهید تا امنیت سایت تضمین شود. این فرآیند معمولاً در سه مرحله انجام میشود:
۱- دریافت گواهی از سرور، ۲- اصلاح تنظیمات وردپرس، ۳- ریدایرکت اجباری تمام صفحات برای دریافت «قفل سبز» مرورگر. انجام صحیح این مراحل یکی از فاکتورهای مهم برای افزایش اعتماد کاربران و بهبود سئو سایت است.
در این مقاله از ابر فردوسی، نصب SSL در وردپرس را هم به روش سریع (با افزونه) و هم به روش فنی و دستی (بدون افت سرعت)، همراه با نحوه رفع خطای Mixed Content یاد خواهید گرفت.
فهرست مطالب
دریافت و فعالسازی گواهی در هاست (پیشنیاز)
بسیاری از کاربران تصور میکنند که نصب ssl در وردپرس صرفاً با نصب یک افزونه در پیشخوان مدیریت تمام میشود؛ اما این تصور اشتباه است. تا زمانی که گواهی امنیتی (Certificate) روی سرورِ میزبانِ سایت شما صادر و فعال نشده باشد، وردپرس نمیتواند ارتباط امنی برقرار کند.
بنابراین، پیشاز هرگونه تغییری در تنظیمات وردپرس، باید مطمئن شوید که گواهی SSL (معمولاً نسخه رایگان Let’s Encrypt) برای دامنه شما فعال است. روش فعالسازی بسته به کنترلپنل هاست شما متفاوت است:
- در cPanel: وارد بخش SSL/TLS Status شوید و روی دکمه Run AutoSSL کلیک کنید تا تیکهای سبز رنگ کنار دامنهها روشن شود.
- در DirectAdmin: به منوی SSL Certificates بروید و گزینه Get automatic certificate را انتخاب کنید.
- در Plesk: از بخش Websites & Domains وارد تب Security شوید و SSL را فعال کنید.


پساز اینکه پیام موفقیتآمیز بودن صدور گواهی را در هاست دیدید، نوبت به مرحله اصلی یعنی تنظیم ssl در وردپرس میرسد.
نکته فنی: اگر در مراحل صدور گواهی با خطا مواجه شدید، احتمالاً DNSهای دامنه شما هنوز بهدرستی روی سرور ست نشدهاند یا فایروال سرور مانع از تأیید هویت میشود.
در معماریهای قدیمی هاستینگ، این پروسه گاهی پیچیده و دستی انجام میشود؛ اما اگر زیرساخت سایت شما روی بهترین سرور ابری (cloud server) پیادهسازی شده باشد، معمولاً معماری سرور بهگونهای تنظیم شده که این گواهیها (چه رایگان و چه تجاری) به صورت کاملاً خودکار و بدون دخالت کاربر در لحظه اتصال دامنه فعال میشوند تا شما درگیر خطاهای فنی سمت سرور نشوید.
اگر نمیدانید سرور ابری و مزایای آن برای شما چیست، پیشنهاد میکنیم مقاله زیر را سر فرصت مطالعه کنید.
نصب با افزونه (روش سریع)
اگر تمایلی به ویرایش کدهای هاست ندارید یا نگرانید بهخاطر اشتباه، سایت از دسترس خارج شود، بهترین روش برای نصب ssl روی وردپرس استفاده از افزونههای کمکی است. یکیاز مهمترین ویژگیهای سیستمهای مدیریت محتوا (که در مقاله CMS چیست؟ راهنمای جامع سیستم مدیریت محتوا مفصل بررسی کردهایم) همین قابلیت توسعهپذیری با ابزارهای جانبی است که کار را برای مدیران سایت آسان میکند.
در میان هزاران افزونه موجود، Really Simple SSL استانداردترین و محبوبترین گزینهای است که تقریباً تمامی تنظیمات HTTPS در وردپرس را بهصورت خودکار انجام میدهد. طبق مستندات WordPress.org، این افزونه علاوهبر اینکه آدرس سایت را تغییر میدهد، بسیاری از خطاهای محتوای مختلط (Mixed Content) را نیز در لحظه شناسایی و رفع میکند.
مراحل فعالسازی گامبهگام:
۱. نصب: وارد پیشخوان وردپرس شوید، به مسیر افزونهها > افزودن بروید و عبارت “Really Simple SSL” را جستجو و نصب کنید.

۲. فعالسازی: پساز فعال کردن افزونه، یک کادر آبیرنگ بزرگ در بالای صفحه ظاهر میشود.
۳. تکمیل: کافیست روی دکمه “Activate SSL” کلیک کنید.
بعداز کلیک، افزونه بهصورت خودکار بررسی میکند که آیا گواهی SSL روی هاست شما (که در مرحله قبل توضیح دادیم) فعال است یا خیر. اگر فعال باشد، سایت شما را به نسخه امن منتقل میکند و شما مجبور به خروج و ورود مجدد به پیشخوان خواهید شد.
آیا استفاده از افزونه بهترین راه است؟ (مزایا و معایب)
هرچند آموزش نصب SSL روی سایت وردپرسی با افزونه بسیار ساده است، اما باید آگاه باشید که این روش بدون هزینه نیست (منظور هزینه فنی است).
- مزیت بزرگ: سرعت راهاندازی زیر ۲ دقیقه و رفع خودکار خطاهای جزئی.
- عیب فنی: این افزونهها برای تبدیل لینکهای http به https، از روش ریدایرکت نرمافزاری (PHP Redirect) استفاده میکنند. یعنی هربار که کاربری وارد سایت میشود، وردپرس باید یکبار کد افزونه را اجرا کند تا او را به نسخه امن بفرستد.
برای سایتهای کمبازدید، این موضوع مشکلی ایجاد نمیکند؛ اما اگر سایت پربازدیدی دارید، این فرایند باعث افزایش فشار پردازشی به سرور و کندی جزئی میشود. به همین دلیل، در بخش بعدی روشی را یاد میگیریم که بدون نصب هیچ افزونهای و بدون کندی سرعت، تنظیم ssl در وردپرس را بهصورت حرفهای و زیرساختی انجام دهید.
نصب بدون افزونه (روش حرفهای)
اگر سرعت لود سایت و بهینهسازی منابع سرور برایتان اولویت دارد، این بخش مخصوص شماست. روشهای مبتنی بر افزونه (که در بالا گفتیم)، درخواستها را با زبان PHP پردازش میکنند که سربار (Overhead) دارد؛ اما در نصب ssl در وردپرس به روش دستی، ما تغییرات را مستقیماً در سطح دیتابیس و وبسرور (Apache/Nginx) اعمال میکنیم. نتیجه؟ تغییر آدرس سایت به HTTPS در وردپرس بدون حتی یک میلیثانیه تأخیر اضافه اتفاق میافتد.
این روش شامل ۳ مرحله حساس است. لطفاً دقت کنید و قبلاز انجام مراحل، یک بکاپ (Backup) از سایت بگیرید.
۱. ویرایش تنظیمات عمومی (تغییر آدرسها)
اولین قدم این است که به خودِ هسته وردپرس بفهمانیم آدرس سایت تغییر کرده است.
۱. وارد پیشخوان وردپرس شوید و به مسیر تنظیمات > عمومی (Settings > General) بروید.
۳. در دو فیلد «نشانی وردپرس (URL)» و «نشانی سایت (URL)»، پیشوند http را به https تغییر دهید.
۳. روی دکمه «ذخیره تغییرات» در پایین صفحه کلیک کنید.

توجه مهم: بلافاصله بعداز زدن دکمه ذخیره، از پیشخوان خارج میشوید (Log out) و ممکن است صفحه ارور دهد. نترسید! این یعنی مراحل فعالسازی SSL در وردپرس شروع شده است. دوباره لاگین کنید و به مرحله بعد بروید.
۲. ویرایش فایل wp-config.php (امنیت اجباری ادمین)
گاهی اوقات با وجود تغییر آدرس، صفحه لاگین یا محیط مدیریت هنوز با پروتکل ناامن باز میشود. برای اینکه خیالمان راحت شود که تمام کوکیها و اطلاعات ورود رمزنگاری میشوند، باید یک دستور اجباری به فایل کانفیگ اضافه کنیم:
۱. وارد پنل مدیریت هاست (File Manager) شوید.
۲. در پوشه اصلی (public_html)، فایل wp-config.php را پیدا و ویرایش (Edit) کنید.

۳. قطعه کد زیر را پیدا کنید:
/* That's all, stop editing! Happy publishing. */
۴. دقیقاً بالای خط مذکور، کد زیر را قرار دهید:
define('FORCE_SSL_ADMIN', true);

با این کار، گواهی SSL برای وردپرس در ناحیه مدیریت (wp-admin) اجباری میشود و بدینترتیب امنیت پیشخوان را تضمین میکنیم.
۳. ریدایرکت ۳۰۱ در htaccess (مهمترین گام سئو)
تا اینجا سایت شما با https باز میشود، اما مشکل بزرگ اینجاست که نسخه http هم هنوز در دسترس است! گوگل این را بهعنوان محتوای تکراری (Duplicate Content) میشناسد و جریمهتان میکند. ما باید تمام ترافیک ورودی را بهصورت خودکار به نسخه امن هدایت کنیم.
برای این کار از فایل htaccess استفاده میکنیم که قدرتمندترین ابزار برای تغییر آدرس سایت به HTTPS در وردپرس در سطح سرور است.
۱. در همان پوشه public_html، فایل htaccess را باز کنید (اگر آن را نمیبینید، گزینه Show Hidden Files را در تنظیمات فایل منیجر بزنید).

۲. کدهای زیر را در ابتدای فایل (قبل از # BEGIN WordPress) قرار دهید:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

توضیح کد:
- RewriteCond %{HTTPS} off: چک میکند اگر کاربر با http وارد شده است…
- R=301: او را با کد ۳۰۱ (انتقال دائم) به https منتقل کن. این کد به گوگل میفهماند که آدرس جدید و دائمی سایت شما کجاست.
با انجام این ۳ مرحله، شما آموزش نصب ssl در وردپرس را به حرفهایترین شکل ممکن پیاده کردید. حالا سایت شما باید قفل سبز را نشان دهد. اما اگر هنوز قفل سبز را نمیبینید مسئلهای نیست؛ این مشکل رایجی به نام Mixed Content است که در ادامه حلش میکنیم.
رفع خطای Mixed Content (محتوای مختلط)
شاید تمام مراحل بالا را به درستی انجام داده باشید، اما وقتی سایت را باز میکنید، بهجای آن قفل سبز رنگِ معروف، با یک مثلث زرد هشداردهنده یا عبارت “Not Secure” مواجه شوید. به این وضعیت، خطای Mixed Content یا محتوای مختلط میگویند.
اما چرا این اتفاق میافتد؟ اگر بخواهیم با مثال توضیح بدهیم، شما یک خانه کاملاً امن و ضدسرقت دارید (HTTPS)، اما یکیاز پنجرههای کوچک آن باز مانده است (HTTP). مرورگرهای پیشرفتهای مثل کروم، اگر ببینند که خودِ صفحه با https لود شده اما تصاویر، اسکریپتها یا فونتهای داخل آن همچنان با آدرس قدیمی http فراخوانی میشوند، امنیت کل صفحه را زیر سؤال میبرند.
برای رفع خطای گواهی SSL در وردپرس و سبزشدن آن قفل لجباز، باید تمام این لینکهای داخلی قدیمی را در دیتابیس اصلاح کنید.
۱. شناسایی فایلهای مخرب (عیبیابی)
قبلاز اینکه دست به جراحی دیتابیس بزنید، باید بدانید کدام فایلها مشکلساز هستند.
- سایت خود را باز کنید.
- روی صفحه کلیک راست کنید و گزینه Inspect را بزنید (یا کلید F12 را فشار دهید).
- وارد تب Console شوید.
- اگر خطاهای زرد یا قرمزی دیدید که نوشته بود: Mixed Content: The page at… was loaded over HTTPS, but requested an insecure image…، یعنی دقیقاً همین مشکل را دارید.

۲. اصلاح لینکها در دیتابیس (راهکار قطعی)
تغییر دستی لینک تکتک تصاویر در صدها مقاله غیرممکن است. بهترین روش، استفاده از یک ابزار «جستجو و جایگزینی» در دیتابیس است. طبق توصیه WPBeginner، افزونه Better Search Replace بهترین ابزار رایگان برای این کار است.
هشدار بسیار مهم: قبلاز انجام این مرحله، حتماً از دیتابیس خود بکاپ بگیرید؛ چون یک اشتباه کوچک در تایپ آدرس میتواند سایت را از دسترس خارج کند.
مراحل انجام کار:
۱. افزونه Better Search Replace را نصب و فعال کنید.

۲. به مسیر ابزارها > Better Search Replace بروید.
۳. در فیلد Search for، آدرس سایت خود را با http وارد کنید (مثلاً: http://example.com).
۴. در فیلد Replace with، آدرس سایت را با https وارد کنید (مثلاً: https://example.com).
۵. در کادر Select tables، تمام جدولها را انتخاب کنید (با نگه داشتن Ctrl یا Command + A).

۶. ابتدا تیک گزینه Run as dry run را بزنید و دکمه جستجو را کلیک کنید. (این حالت فقط تست میکند و تغییری نمیدهد).
۷. اگر تعداد تغییرات پیدا شده منطقی بود، تیک Dry run را بردارید و دکمه را مجدد بزنید تا تغییرات اعمال شود.
با انجام این کار، تمام لینکهای قدیمی موجود در نوشتهها، برگهها و تنظیمات قالب به آدرس جدید تغییر میکنند و به احتمال ۹۹٪ مشکل تغییر آدرس تمام صفحات سایت به HTTPS بعد از نصب SSL کاملاً حل شده و قفل سبز ظاهر میشود.
ثبت نسخه HTTPS در گوگل سرچ کنسول
یکیاز رایجترین اشتباهات پساز نصب ssl در وردپرس، رهاکردن سایت بهحال خود است. باید بدانید که از نظر گوگل، نسخه http و نسخه https سایت شما، یکسان نیستند؛ بلکه گوگل آنها را به عنوان دو وبسایت کاملاً مجزا میشناسد.
اگر پساز تغییر آدرس سایت به HTTPS، نسخه جدید را به گوگل معرفی نکنید، ممکن است با افت رتبه مواجه شوید، زیرا گوگل همچنان تلاش میکند نسخه ناامن قدیمی را ایندکس کند؛ پس شما باید مالکیت نسخه امن را در سرچ کنسول (Google Search Console) تأیید کنید.
برای این کار دو سناریو وجود دارد:
- اگر از Domain Property استفاده میکنید:
اگر قبلاً سایت خود را با روش Domain (که نیاز به تغییر DNS دارد) ثبت کردهاید، خبر خوب این است که نیازی به کار اضافه ندارید. این روش بهصورت خودکار تمام پروتکلها (http/https) و تمام زیردامنهها را پوشش میدهد.
- اگر از URL Prefix استفاده میکنید:
بسیاری از کاربران از روش قدیمی URL Prefix استفاده کردهاند. در این حالت شما باید:
- وارد پنل سرچ کنسول شوید.
- از منوی سمت چپ، روی لیست سایتها کلیک کنید و Add Property را بزنید.
- آدرس کامل سایت را اینبار با پروتکل امن (مثلاً https://example.com) وارد و ثبت کنید.
با انجام این کار، مطمئن میشوید که گوگل، افزایش امنیت سایت وردپرسی با SSL را درک کرده و ترافیک را به نسخه صحیح هدایت میکند. همچنین نمودارهای بازدید شما در سرچ کنسول پساز مدتی روی نسخه HTTPS تجمیع خواهد شد.
اشتباهات رایج بعد از نصب SSL در وردپرس
حتی بعد از نصب موفق گواهی SSL، برخی مشکلات باعث میشوند قفل سبز مرورگر ظاهر نشود یا سایت کامل امن به نظر نرسد. شناخت این اشتباهات کمک میکند سریعتر مشکل را برطرف کنید و تجربه کاربری و سئو سایت را حفظ کنید.
1. بارگذاری منابع قدیمی با HTTP
تصاویر، فونتها یا اسکریپتهایی که هنوز با آدرس HTTP فراخوانی میشوند باعث Mixed Content میشوند. حتی یک منبع ناامن کافی است که قفل سبز نمایش داده نشود.
2. ریدایرکت ناقص از HTTP به HTTPS
وقتی تمام صفحات سایت به درستی به HTTPS ریدایرکت نشوند، مرورگر نسخه HTTP را بارگذاری میکند و امنیت کامل برقرار نمیشود.
3. کش مرورگر یا CDN قدیمی
اگر مرورگر یا CDN نسخه HTTP سایت را کش کرده باشد، حتی بعد از تغییر به HTTPS، کاربران نسخه امن را نمیبینند.
4. تنظیمات نادرست در وردپرس
آدرس سایت و آدرس وردپرس در تنظیمات عمومی باید به HTTPS تغییر یابند. هر گونه آدرس HTTP در این بخش باعث بروز مشکل Mixed Content میشود.
5. استفاده از اسکریپتها و پلاگینهای خارجی ناامن
هر اسکریپت یا پلاگین خارجی که از HTTP فراخوانی شود، باعث میشود مرورگر قفل سبز را نمایش ندهد، حتی اگر سایت خودتان کاملاً امن باشد.
جدول اشتباهات رایج و راهکار
| اشتباه رایج | نشانهها | راهکار |
|---|---|---|
| بارگذاری منابع قدیمی با HTTP | Mixed Content در مرورگر، قفل سبز ظاهر نمیشود | اصلاح لینکها در دیتابیس و فایلها به HTTPS |
| ریدایرکت ناقص از HTTP به HTTPS | صفحات قدیمی همچنان HTTP باز میشوند | ایجاد ریدایرکت 301 کامل در htaccess یا سرور |
| کش مرورگر یا CDN قدیمی | تغییرات HTTPS اعمال نمیشوند | پاک کردن کش مرورگر و CDN |
| تنظیمات نادرست در وردپرس | آدرس سایت HTTP باقی مانده | تغییر Site URL و Home URL به HTTPS در تنظیمات |
| اسکریپتها و پلاگینهای خارجی ناامن | خطای Mixed Content در Console | جایگزینی با نسخه HTTPS یا حذف فایل ناامن |
چرا باید نگران تنظیمات پیچیده SSL باشید؟
تمام مراحلی که در بالا خواندید -از دستکاری کدهای حساس .htaccess تا نگرانی بابت آپدیتشدن گواهیهای Let’s Encrypt و خطاهای سرور- دغدغههایی هستند که در یک معماری ابری مدرن، تقریباً حل شدهاند.
وقتی زیرساخت شما استاندارد باشد، امنیت نباید دغدغه شما باشد. در سرورهای ابر فردوسی، معماری شبکه بهگونهای طراحی شده که پروتکلهای امنیتی بهصورت Native (بومی) پشتیبانی میشوند. این یعنی شما بدون نیاز به درگیری با کدهای پیچیده و تنها با چند کلیک، از پایداری و امنیت سطح بالا برخوردار میشوید.
اگر آمادهاید سرعت و امنیت واقعی را تجربه کنید، ما برای شروع، یک پیشنهاد ریسکفری با ۱۰۰ هزارتومان اعتبار و تست رایگان برایتان داریم که میتوانید از همین لحظه با آن کار خود را شروع کنید.
جمعبندی
در این مقاله، مسیر پر پیچوتخم نصب ssl در وردپرس را باهم طی کردیم. دیدیم که چگونه میتوان با یک افزونه ساده مثل Really Simple SSL کار را راه انداخت و یا چطور با روش حرفهای (ویرایش htaccess و wp-config) بدون اینکه فشاری به سرور وارد شود، سایت را ایمن کرد. همچنین یاد گرفتیم که نصب SSL فقط به سبزشدن قفل مرورگر محدود نمیشود و باید حواسمان به خطای Mixed Content و معرفی سایت به گوگل هم باشد.
فعالسازی SSL اولین قدم برای جلب اعتماد کاربر و موتورهای جستجو است. حالا بگویید؛ آیا در حین انجام مراحل با خطای خاصی مواجه شدید؟ یا روش دیگری برای ریدایرکت سراغ دارید؟ خوشحال میشویم تجربیات خود را در بخش نظرات با ما و سایر کاربران ابر فردوسی در میان بگذارید.
منابع:
malcare | wordpress | hostinger | muffingroup | qodeinteractive | wpbeginner | dohost
سؤالات متداول
آیا فعالسازی SSL باعث کندی سرعت سایت میشود؟
خیر، این یک باور قدیمی است. اگر هاست شما از پروتکل مدرن HTTP/2 پشتیبانی کند (که تمام سرورهای ابری فردوسی پشتیبانی میکنند)، سایتهای دارای HTTPS حتی سریعتر از سایتهای HTTP بارگذاری میشوند. رمزنگاریهای جدید سربار بسیار ناچیزی دارند که اصلاً محسوس نیست.
تفاوت SSL رایگان (Let’s Encrypt) با نسخههای پولی چیست؟
از نظر قدرت رمزنگاری (Encryption)، هیچ تفاوتی ندارند و هر دو امنیت سایت را تأمین میکنند. تفاوت اصلی در بیمه و تأیید هویت است. گواهیهای پولی (OV و EV) هویت حقوقی شرکت شما را هم تأیید میکنند و برای فروشگاههای بزرگ یا بانکها توصیه میشوند؛ اما برای ۹۹٪ سایتهای وردپرسی، همان نصب SSL رایگان کاملاً کافی و استاندارد است.
چرا بعداز نصب، هنوز قفل سبز را نمیبینم؟
این مشکل معمولاً به خاطر محتوای مختلط (Mixed Content) است. یعنی با اینکه آدرس سایت https شده، اما عکسها یا فایلهای CSS قالب هنوز با آدرس http فراخوانی میشوند. همانطورکه در مقاله توضیح دادیم، با افزونه Better Search Replace، میتوانید لینکهای دیتابیس را اصلاح کنید.
خطای Redirect Loop یا «تغییر مسیر بیشاز حد» را چطور حل کنم؟
این خطا زمانی رخ میدهد که تنظیمات SSL در هاست و تنظیمات وردپرس باهم در تضاد باشند. مثلاً اگر از کلودفلر (Cloudflare) استفاده میکنید و SSL آن روی حالت Flexible باشد ولی در وردپرس Full را اجباری کرده باشید، سایت وارد لوپ میشود. برای حل آن، SSL کلودفلر را روی Full بگذارید یا کدهای htaccess را بررسی کنید.
اگر افزونه Really Simple SSL باعث خرابی سایت شد چه کنم؟
وارد هاست شوید و پوشه این افزونه را در مسیر wp-content/plugins تغییر نام دهید (مثلاً به really-simple-ssl-old). با این کار افزونه غیرفعال میشود و میتوانید دوباره وارد پیشخوان شوید.
گواهی Let’s Encrypt هر چند وقت یکبار منقضی میشود؟
این گواهیها ۹۰ روز اعتبار دارند. اما در هاستهای استاندارد (مثل سیپنل یا دایرکتادمین)، عملیات تمدید (Renew) بهصورت خودکار توسط سرور انجام میشود و نیازی نیست شما کاری انجام دهید.

