איך מוסיפים כותרת HSTS לאתר

HSTS אומר לדפדפן להשתמש תמיד ב-HTTPS באתר שלכם, גם אם מישהו מקליד http או לוחץ על קישור ישן. בלעדיו, תוקף ברשת ציבורית יכול להוריד מבקר לחיבור לא מוצפן.

includeSubDomains ו-preload מחייבים שכל תתי-הדומיינים שלכם יעבדו ב-HTTPS. אם אינכם בטוחים, התחילו בלעדיהם ועם max-age קצר (למשל 300), והגדילו אחרי שבדקתם.

איך מתקנים, לפי הפלטפורמה שלכם

WordPress

איפה: הקובץ functions.php של ערכת העיצוב (או תוסף לקטעי קוד)

add_action('send_headers', function () {
  header("Strict-Transport-Security: max-age=31536000; includeSubDomains; preload");
});

WordPress שולח את הכותרת Strict-Transport-Security בכל טעינת עמוד.

איך בודקים שזה עבד: טענו מחדש את האתר ובדקו שכותרות התגובה כוללות את `Strict-Transport-Security`.

Cloudflare

איפה: לוח הבקרה של Cloudflare: Rules ← Transform Rules ← Modify Response Header ← Add

Set static  —  Header name: Strict-Transport-Security  —  Value: max-age=31536000; includeSubDomains; preload

Cloudflare מוסיף את הכותרת Strict-Transport-Security בשרתי הקצה שלו, בלי שינוי בשרת שלכם.

איך בודקים שזה עבד: טענו מחדש את האתר ובדקו שכותרות התגובה כוללות את `Strict-Transport-Security`.

Vercel / Next.js

איפה: הקובץ next.config.js, בתוך הפונקציה async headers()

module.exports = {
  async headers() {
    return [{ source: "/(.*)", headers: [
      { key: "Strict-Transport-Security", value: "max-age=31536000; includeSubDomains; preload" },
    ]}];
  },
};

Next.js שולח את הכותרת Strict-Transport-Security בכל נתיב.

איך בודקים שזה עבד: טענו מחדש את האתר ובדקו שכותרות התגובה כוללות את `Strict-Transport-Security`.

Netlify

איפה: קובץ `_headers` בתיקיית הפרסום (או netlify.toml)

/*
  Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Netlify מוסיף את הכותרת Strict-Transport-Security לכל הנתיבים (`/*`).

איך בודקים שזה עבד: טענו מחדש את האתר ובדקו שכותרות התגובה כוללות את `Strict-Transport-Security`.

Nginx

איפה: nginx.conf — בתוך הבלוק `server { }`, ואז טענו מחדש את nginx

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

מוסיף את הכותרת Strict-Transport-Security לכל תגובה.

איך בודקים שזה עבד: טענו מחדש את האתר ובדקו שכותרות התגובה כוללות את `Strict-Transport-Security`.

Apache

איפה: .htaccess (או הגדרות ה-vhost), ואז הפעילו מחדש את Apache

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

מוסיף את הכותרת Strict-Transport-Security דרך mod_headers.

איך בודקים שזה עבד: טענו מחדש את האתר ובדקו שכותרות התגובה כוללות את `Strict-Transport-Security`.

IIS

איפה: web.config — בתוך <system.webServer><httpProtocol><customHeaders>

<add name="Strict-Transport-Security" value="max-age=31536000; includeSubDomains; preload" />

מוסיף את הכותרת Strict-Transport-Security ב-IIS.

איך בודקים שזה עבד: טענו מחדש את האתר ובדקו שכותרות התגובה כוללות את `Strict-Transport-Security`.

שרת האתר שלכם

איפה: הגדרות כותרות התגובה בשרת האתר שלכם

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

הגדירו את השרת או את ה-CDN לשלוח את הכותרת הזו בכל תגובה.

איך בודקים שזה עבד: טענו מחדש את האתר ובדקו שכותרות התגובה כוללות את `Strict-Transport-Security`.

לא בטוחים אם האתר שלכם צריך את התיקון הזה? הסריקה בודקת את זה ועוד עשרות דברים, ומראה מה חסר אצלכם.

לסריקה חינמית של האתר

מדריכים קשורים