HSTS چیست و چطور آن را فعال کنیم

4.4 / 5. تعداد رای: 20

HSTS چیست و چطور آن را فعال کنیم

اگر روی سایت خود از https استفاده می‌کنید، بهتر است برای افزایش امنیت و افزایش سرعت سایت خود حتما HSTS را فعال کنید. HSTS به معنای HTTP Strict Transport Security هست که به شما اجازه می‌دهد با حملات man-in-the-middle را مقابله کنید. شاید کمی سخت شد. اما در ادامه اینکه HSTS چیست و چطور می‌توانیم آن را روی وردپرس نصب کنیم توضیح خواهم داد.

HSTS چیست و چگونه کار می‌کند

به‌صورت کلی زمانی که شما SSL را روی سایت خود نصب می‌کنید، باید در تنظیمات سایت وردپرسی خود آدرس سایتتان را به https تغییر دهید. در نتیجه برای باز کردن سایت‌تان، اگر آدرس سایت را به صورت http://mihanwp.com در مرورگر وارد کنید، به‌صورت خودکار به https://mihanwp.com منتقل خواهید شد.

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

HSTS چگونه کار می‌کند
HSTS چگونه کار می‌کند

فعال کردن HSTS در وردپرس

برای فعالسازی HSTS در وردپرس باید یک هدر جدید در درخواست‌های سمت سرور برای مرورگر کاربر ارسال شود. برای این‌کار کافیست بسته به وب سرور سایت خود از این ۲ روش استفاده کنید.

فعالسازی در وب سرور آپاچی و لایت اسپید (مناسب برای ۹۹ درصد سایت‌ها)

برای فعالسازی HSTS در وب سرور آپاچی و لایت اسپید، کافیست وارد فایل منیجر هاست خود شوید. فایل منیجر هاست در سی پنل و دایرکت ادمین با نام FileManager در دسترس است.

بعد از ورود به فایل منیجر، وارد پوشه public_html شوید. سپس فایل .htaccess را ویرایش کرده و کد زیر را در این فایل قرار دهید:

<IfModule mod_headers.c>
Header set Strict-Transport-Security "max-age=31536000;preload" env=HTTPS
</IfModule>

سپس این فایل را ذخیره کنید. حالا مشاهده می‌کنید که سایت شما به‌صورت خودکار از http به https ریدایرکت می‌شود. حتی قبل از اینکه درخواست به وب سرور ارسال شود.

راستی! اگر می‌خواهید تمام ساب دامین‌های شما از https استفاده کنند، حتما این کد را جایگزین کد بالا کنید:

<IfModule mod_headers.c>
Header set Strict-Transport-Security "max-age=31536000;includeSubDomains;preload" env=HTTPS
</IfModule>

فعال کردن HSTS در وب سرور NGINX

اگر شما از وب سرور انجین ایکس استفاده می‌کنید، نحوه انجام کار کمی متفاوت هست. تقریبا ۱ درصد سایت‌های ایرانی از NGINX استفاده می‌کنند، پس به احتمال زیاد شما باید از روش قبلی استفاده کنید. اما در هر صورت اگر سرور مجازی یا اختصاصی دارید و وب سرور شما NGINX هست، کافیست فایل nginx.conf را در وب سرور خود پیدا کنید، سپس کد زیر را در Virtual Server مخصوص سایت خود اضافه کنید:

add_header Strict-Transport-Security "max-age=63072000;";

به همین راحتی! حالا وب سرور NGINX خود را ریستارت کرده و از HSTS در سایت خود لذت ببرید.

چطور مطمئن باشیم HSTS فعال است

برای اطمینان از فعال بودن HSTS روی سایت شما، کافیست وارد سایت https://gf.dev/hsts-test شوید.سپس سایت خود را وارد کرده و گزینه تست را کلیک کنید. این سایت وضعیت فعال بودن HSTS روی سایت شما را بررسی خواهد کرد. به این صورت:

hsts test

موفق و شاد باشید.

نکته خاصی هست که این مقاله رو تکمیل‌تر کنه؟

  1. U332597 ۱۹ آبان ۱۴۰۲

    سلام وقت بخیر جناب حسینی.من تو سایت تست گرفتم ارور داده.حتی دامین سایت میهن وردپرس تست کردم جواب تست نمیده.Internal Server Error این رو میده بهم.

  2. U317638 ۱۴ مرداد ۱۴۰۲

    سلام آیا این سایت تست کننده امن است چون سایت های تازه تاسیس شده رو بهش می دم و امنیت سایت هاش پایینه

  3. U10966 ۲۶ دی ۱۴۰۱

    سلام
    من آموزش های شما رو دنبال دارم میکنم و HSTS رو برای سایت خودم فعال کردم ، لما چرا رو سایت خودتون فعال نیست؟
    آیا این برای همه سایت ها مناسب هست و یا شرایط استفاده خاصی داره؟
    مثلا من دیجیکالا رو چک کردم فعال نبود ولی رو بانی مد فعال هست.

  4. U310322 ۲۵ آذر ۱۴۰۰

    با سلام
    ممنون از توضیحات خوبتون
    دامنه ما روی ابر آروان هست
    باید با پشتیبانی ابر آروان هماهنگ کنیم برای فعال کردن ؟

  5. U30244 ۲۷ فروردین ۱۴۰۰

    سلام.
    ممنون از این مقاله‌تون.
    قبل از خواندن این مقاله فکر می‌کردم که HSTS همان پروتکل HTTPS است. اما فهمیدم که فرق دارد و تو سایت خودم الان فعال کردم. خیلی ممنون. اگر امکانش هست یک مقاله هم راجع به SSH بگذارید.
    باتشکر از شما.

  6. U38774 ۲۲ فروردین ۱۴۰۰

    سلام بنده هر کار کردم در سایت بازهم میزنه که HSTS فعال نیست. 🙁