HSTS: HTTP Strict Transport Security 向けに SEO
何 HSTS 実際に する, Strict-Transport-Security header syntax (max-age, includeSubDomains, preload), ブラウザー-だけ internal redirect crawlers 決して see, なぜ それ doesn't replace あなたの 301s, と どのように preload できる lock あなた in — から Patrick Stox.
言語
このページには証拠シグナルが1件あります
- 関連するライブツールHTTP Header Checker
HSTS (HTTP Strict Transport Security) は Strict-Transport-Security レスポンス header — honored だけ いつ それ arrives over secure connection — その tells ブラウザー to 常に 使う HTTPS 向けに あなたの domain going forward, closing insecure gap その 新しい 訪問者's 最初の リクエスト それでも makes over HTTP 前に あなたの 301 fires. それ's ブラウザー-layer, per-クライアント ポリシー on top of あなたの サーバー-side redirects, ない replacement: RFC 6797 持つ ブラウザー rewrite URI to HTTPS internally 前に いずれかの リクエスト goes out (多くの場合 表示された as internal 307-style redirect, though RFC doesn't mandate specific status code), so no サーバー ever sees HTTP form と crawlers それでも 必要とする あなたの real 301 to understand 移行 と carry リンク equity. header 持つ 3つの directives — max-age (required), includeSubDomains, と preload. Preload bakes あなたの domain へ ブラウザー itself via hstspreload.org (requiring max-age of at least year, includeSubDomains, と preload flag) と は close to irreversible — removal は 分離する submission その takes months to reach ユーザー. HSTS は また deliberately unforgiving: ブラウザー その knows あなた as HSTS ホスト する hard-fail とともに no click-通じて もし あなたの certificate ever breaks. So enable それ だけ once HTTPS は genuinely solid 全体で すべての subdomain, と treat preload as 1つの-方法 door.
TL;DR — HSTS は small instruction あなたの サーバー 送る ブラウザー その says “always use HTTPS for my site — never plain HTTP.” それ plugs tiny security hole その normal HTTP→HTTPS redirect leaves open, と それ doesn’t hurt SEO. But それ’s strict on purpose: once それ’s on, broken certificate breaks あなたの site とともに no 方法 向けに 訪問者 to click past warning. Turn それ on だけ いつ あなたの HTTPS setup は genuinely solid.
“always use HTTPS for my site — never plain HTTP.”(日本語訳:引用内容を日本語で示します)
何 HSTS は
あなた already know あなた すべき be on HTTPS — encrypted,
padlock version of あなたの site. normal 方法 to force それ は redirect: いつ
someone タイプ http://yoursite.com, あなたの サーバー 送る それらを 301 redirect to
https://yoursite.com. その 機能する, but そこ’s sliver of gap. その very 最初の
リクエスト — 1つの 前に redirect fires — それでも goes out over insecure HTTP. attacker sitting on same Wi-Fi できる pounce in その window.
HSTS — HTTP Strict Transport Security — closes その gap. それ’s short instruction
( “header”) あなたの サーバー adds to その レスポンス — but だけ ones served over genuinely secure connection; same header sent over plain HTTP は ignored, since attacker できる otherwise inject または strip それ — その tells その 1つの ブラウザー: 向けに next however-多くの months, 決して 〜でさえ try HTTP 向けに この site — go straight to
HTTPS. それ’s ポリシー 各 ブラウザー learns と stores 向けに itself, ない something その
変更 あなたの サーバー. Once ブラウザー 持つ seen それ, それ upgrades http:// リンク to
https:// すべての on その own, 前に anything leaves device. Evidence for this claim After receiving HSTS, a browser upgrades future HTTP attempts to HTTPS before sending the request. Scope: MDN documents user-agent enforcement after the header has been learned; first-visit protection requires preload or a prior secure visit. Confidence: high · Verified: MDN: Strict-Transport-Security header
“hsts-browser-upgrade”(日本語訳:引用内容を日本語で示します)
する HSTS 役立つ または hurt SEO?
Neither, directly. HSTS は security と trust feature, ない ranking lever.
それ won’t 移行 あなた up 結果 — but done right それ won’t hurt あなた either. 1つの
thing to understand は その HSTS は ない substitute 向けに あなたの redirects. あなた
それでも 必要とする あなたの real サーバー-side 301 redirects から HTTP to HTTPS, because その’s
何 Google と Bing 実際に see と 使う. HSTS 機能する inside ブラウザー 向けに real
human 訪問者; crawlers don’t rely on それ. 保つ 両方.
1つの big warning
HSTS は deliberately unforgiving. Once ブラウザー 持つ “learned” あなたの site は HTTPS-だけ, それ する refuse to load site at すべての もし あなたの certificate ever expires または misconfigures — とともに no “proceed anyway” button. その’s whole point (それ stops attackers から tricking people onto fake HTTP version), but それ 意味する lapsed certificate goes から “annoying warning” to “site is down for anyone who’s visited before.”
“site is down for anyone who’s visited before.”(日本語訳:引用内容を日本語で示します)
そこ’s また supercharged version called preload その bakes あなたの domain へ ブラウザー itself. それ’s great, but getting off preload list later は 遅い と painful — think months. So preload は 1つの-方法 door: だけ walk 通じて それ いつ あなた’re sure. Evidence for this claim HSTS preload requires at least a one-year max-age, includeSubDomains, and preload; removal can take months to reach users. Scope: The Chromium preload service documents submission and removal behavior; requirements can change and should be rechecked before submission. Confidence: high · Verified: Chromium: HSTS Preload List Submission
“hsts-preload-requirements-removal”(日本語訳:引用内容を日本語で示します)
Want header syntax, ブラウザー-だけ internal redirect crawlers 決して see, preload requirements, と real lockout scenarios? Switch to Advanced tab.
TL;DR — HSTS は
Strict-Transport-Securityレスポンス header, honored だけ いつ ブラウザー receives それ over secure connection, と stored per-クライアント as future ポリシー 向けに その ホスト. それ closes “first request problem” 301 alone leaves open: initial HTTP リクエスト から 新しい 訪問者 は insecure until > redirect fires, と その’s window SSL-stripping attacker wants. 3つの directives:max-age(required, seconds),includeSubDomains,preload. いつ > ブラウザー enforces HSTS それ rewrites URI to HTTPS internally, 前に いずれかの リクエスト reaches サーバー — RFC 6797 doesn’t mandate specific status code 向けに その rewrite, though tools 多くの場合 surface それ as 307 — so あなたの サーバー-side 301s は それでも mandatory 向けに 検索 エンジン と リンク equity; HSTS は on top of それらを, ない instead. Preload bakes あなたの domain へ ブラウザー via hstspreload.org (必要とするmax-age≥ 31536000,includeSubDomains, とpreload) と は close to irreversible — removal は 分離する submission その takes months to reach ユーザー. と HSTS は designed to hard-fail on いずれかの cert エラー, so enable それ だけ いつ HTTPS は robust 全体で すべての subdomain.
“first request problem”(日本語訳:引用内容を日本語で示します)
HTTPS hub introduces HSTS as ブラウザー-layer protection その sits on top of あなたの 301s. この ページ は deep dive: exact header syntax, internal redirect その trips SEOs up, preload list’s near-irreversibility, と real-world 方法 HSTS locks people out.
問題 HSTS 実際に solves: 最初の リクエスト
Picture properly migrated site. すべての http:// URL 301-redirects to その https://
twin, certificate は valid, canonical point to HTTPS. 見える airtight. それ isn’t,
quite.
いつ brand-新しい 訪問者 タイプ yoursite.com (no scheme) または clicks 旧
http://yoursite.com リンク, ブラウザー’s 最初の リクエスト goes out over plain HTTP.
あなたの サーバー 回答 とともに 301, と すべての リクエスト 後に その は secure. But その
1つの initial round-trip happened in clear — と その’s exactly window SSL-stripping attacker on same network wants. それら intercept HTTP リクエスト,
保つ victim on HTTP 一方で それら proxy HTTPS to あなたの サーバー, と read または rewrite
everything.
HSTS eliminates その window 向けに anyone who 持つ visited 前に. web.dev は direct
について mechanism:
“use Strict Transport Security to tell clients they should always connect to your
server using HTTPS, even when following an http:// reference. This defeats attacks
like SSL Stripping, and avoids the round-trip cost of the 301 redirect.”
(web.dev).
その last clause 重要である 向けに performance too: returning ブラウザー skips HTTP→HTTPS
round-trip entirely. Evidence for this claim After receiving HSTS, a browser upgrades future HTTP attempts to HTTPS before sending the request. Scope: MDN documents user-agent enforcement after the header has been learned; first-visit protection requires preload or a prior secure visit. Confidence: high · Verified: MDN: Strict-Transport-Security header
“use Strict Transport Security to tell clients they should always connect to your
server using HTTPS, even when following an http:// reference. This defeats attacks
like SSL Stripping, and avoids the round-trip cost of the 301 redirect.”(日本語訳:引用内容を日本語で示します)
“hsts-browser-upgrade”(日本語訳:引用内容を日本語で示します)
2つの boundary conditions worth being precise について. 最初の, HSTS は stored, per-クライアント ポリシー — それ lives in その 1つの ブラウザー’s own state 向けに その ホスト, learned から header 配信された over secure connection; same header sent on HTTP レスポンス は ignored outright ( attacker who できる inject または strip headers on plain HTTP できる otherwise neutralize それ), と クライアント その 持つ 決して received それ — 新鮮 install, 異なる ブラウザー, crawler — 持つ no ポリシー to enforce. Second, rewrite は scheme-と-port aware: implicit port 80 リクエスト becomes implicit port 443 リクエスト, but もし original URI named explicit non-default port, ブラウザー 保つ その same port number と simply contacts それ over HTTPS instead.
header syntax
HSTS は 1つの レスポンス header とともに up to 3つの directives. Per MDN, forms は:
Strict-Transport-Security: max-age=31536000
Strict-Transport-Security: max-age=31536000; includeSubDomains
Strict-Transport-Security: max-age=63072000; includeSubDomains; preloadmax-age=<seconds>— required. “The time, in seconds, that the browser should remember that a host is only to be accessed using HTTPS” (MDN).31536000は 1つの year;63072000は 2つの. clock resets on すべての レスポンス その carries header, so active site continually renews その ポリシー. この は relative, per-クライアント state: simply removing header doesn’t immediately clear それ — ブラウザー その already learned ポリシー 保つ enforcing それ until その storedmax-ageruns out. To turn HSTS off 向けに クライアント その already learned それ, あなた 持つ to actively 配信するmax-age=0over secure レスポンス; ブラウザー その後 forgets ポリシー on その next secure visit. (max-age=0clears learned ポリシー だけ — それ する ない remove domain から 分離する preload list.)includeSubDomains— optional. “If this directive is specified, the HSTS policy applies to all subdomains of the host’s domain as well” (MDN). Powerful と dangerous in equal measure — see lockout scenarios below.preload— optional. flag その シグナル あなたの 意図 to be on ブラウザー preload list. それ する nothing on その own; それ’s prerequisite 向けに submitting to hstspreload.org. Evidence for this claim HSTS preload requires at least a one-year max-age, includeSubDomains, and preload; removal can take months to reach users. Scope: The Chromium preload service documents submission and removal behavior; requirements can change and should be rechecked before submission. Confidence: high · Verified: Chromium: HSTS Preload List Submission
“The time, in seconds, that the browser should remember that a host is only to be accessed using HTTPS”(日本語訳:引用内容を日本語で示します) “If this directive is specified, the HSTS policy applies to all subdomains of the host’s domain as well”(日本語訳:引用内容を日本語で示します) “hsts-preload-requirements-removal”(日本語訳:引用内容を日本語で示します)
behavior, again から MDN:
“Before loading an http URL, the browser checks the domain name against its HSTS
hosts list. If the domain name is a case insensitive match for an HSTS host or is a
subdomain of one that specified includeSubDomains, then the browser replaces the
URL scheme with https.”
“Before loading an http URL, the browser checks the domain name against its HSTS
hosts list. If the domain name is a case insensitive match for an HSTS host or is a
subdomain of one that specified includeSubDomains, then the browser replaces the
URL scheme with https.”(日本語訳:引用内容を日本語で示します)
internal upgrade crawlers 決して see (この は SEO crux)
Here’s single 大半の misunderstood thing について HSTS, と 理由 それ できる’t replace あなたの redirects.
いつ ブラウザー upgrades http:// リクエスト under HSTS, それ rewrites URI to
HTTPS internally, 前に いずれかの network リクエスト は made — RFC 6797 必要とする scheme substitution itself but する ない mandate particular status code 向けに それ
(RFC 6797 §8,3), so given ブラウザー または crawling tool 可能性がある represent その internal step however それ likes —
多くの 表示 それ as internal 307, but その’s クライアント/tool-specific, ない protocol
guarantee. 何 重要である 向けに SEO は simpler と holds regardless of label: no
サーバー は contacted 向けに HTTP version, so no crawler ever sees それ. Googlebot と
Bingbot don’t carry learned HSTS ポリシー around 方法 returning human’s Chrome
する — それら hit あなたの サーバー 新鮮, と 何 それら 必要とする to see そこ は real,
サーバー-side 301. Evidence for this claim RFC 6797 requires the user agent to rewrite a known-HSTS-host HTTP URI to HTTPS internally, but does not mandate any specific redirect status code for that internal rewrite; how a given browser or crawling tool represents that step (e.g., as an internal 307) is a client/tool implementation detail, not a protocol requirement. Scope: RFC 6797 Section 8.3 ("URI Loading and Port Mapping") specifies the UA MUST replace the URI scheme with https; it does not prescribe an HTTP status code for that internal substitution, since no HTTP exchange occurs for it. Section 7.2's suggestion of status code 301 addresses ordinary server-side redirect behavior, not this internal client-side rewrite. Confidence: high · Verified: RFC 6797 §8.3 — URI Loading and Port Mapping
“hsts-internal-redirect-representation”(日本語訳:引用内容を日本語で示します)
So ルール は blunt: HSTS する ない replace あなたの サーバー-side 301s. 301 は 何 検索 エンジン 使う to understand protocol 移行 と to consolidate シグナル (301 と other permanent redirects don’t 引き起こす loss in PageRank, per Google). ブラウザー-だけ internal upgrade は ユーザー-experience と security layer on top. あなた 必要とする 両方, doing 異なる jobs:
- 301 (サーバー-side): 向けに crawlers, インデックス登録, と リンク equity.
- Internal 307-style upgrade (ブラウザー-side, から HSTS): 向けに returning humans と SSL-stripping protection — exact status representation varies by クライアント/tool.
いずれかの guide その tells あなた HSTS “handles the redirect so you can drop your 301” は 誤った in 方法 その する quietly cost あなた.
“handles the redirect so you can drop your 301”(日本語訳:引用内容を日本語で示します)
HSTS preload: near-permanent version
max-age protects returning 訪問者, but それ 持つ bootstrap 問題: 最初の-time 訪問者 who 持つ 決して received あなたの header は それでも exposed on その
initial リクエスト. Preload solves それ by hardcoding あなたの domain へ ブラウザー’s
ソース itself, so ブラウザー knows あなた’re HTTPS-だけ 前に それ 持つ ever connected.
あなた opt in at hstspreload.org. requirements は exact:
- “Serve a valid certificate.”
- “Redirect from HTTP to HTTPS on the same host, if you are listening on port 80.”
- “Serve all subdomains over HTTPS” — including in particular
wwwsubdomain もし DNS record exists. - On base domain’s HTTPS レスポンス, HSTS header どこ “the
max-agemust be at least31536000seconds (1 year),” “theincludeSubDomainsdirective must be specified,” と “thepreloaddirective must be specified.” (hstspreload.org)
“Serve a valid certificate.”(日本語訳:引用内容を日本語で示します)
“Redirect from HTTP to HTTPS on the same host, if you are listening on port 80.”(日本語訳:引用内容を日本語で示します)
“Serve all subdomains over HTTPS”(日本語訳:引用内容を日本語で示します)
“the max-age must be
at least 31536000 seconds (1 year),“(日本語訳:引用内容を日本語で示します)
“the includeSubDomains directive must be
specified,“(日本語訳:引用内容を日本語で示します)
“the preload directive must be specified.”(日本語訳:引用内容を日本語で示します)
その’s なぜ 2つの-year example above (max-age=63072000; includeSubDomains; preload)
は shape people submit — note これらの は exact submission requirements as
公開された by hstspreload.org; treat それらを as 現在の bar, ない permanent
constant, と re-確認 live ページ 前に あなた submit.
それ helps to 保つ four distinct states straight, since people conflate それらを constantly:
| State | 何’s 実際に true |
|---|---|
| Token present | あなたの header includes preload. この は flag だけ — それ する nothing by itself と doesn’t put あなた on いずれかの list. |
| Eligible | あなたの site meets すべての four hstspreload.org requirements above (cert, redirect, subdomains, header shape). それでも ない on list. |
| Submitted / pending | あなた’ve submitted at hstspreload.org と それ’s queued 向けに inclusion in upcoming ブラウザー release. ない yet enforced 向けに real ユーザー. |
| 実際に listed | domain は baked へ given ブラウザー’s shipped 構築する. Enforcement だけ exists 向けに ユーザー on その 構築する — rollout isn’t instant または universal 全体で ブラウザー. |
Removal runs same four states in reverse, と 単に as slowly: removing preload directive から あなたの header makes あなた eligible 向けに removal form, その後
submission は pending, と domain stays enforced 向けに いずれかの ユーザー on ブラウザー 構築する
その それでも ships それ — until その 構築する cycles out.
Now 部分 その turns preload へ 1つの-方法 door. から submission site itself: “Be aware that inclusion in the preload list cannot easily be undone. Domains can be removed, but it takes months for a change to reach users with a Chrome update and we cannot make guarantees about other browsers.” (hstspreload.org). と その own advice: “Don’t request inclusion unless you’re sure that you can support HTTPS for your entire site and all its subdomains in the long term.”
“Be aware that inclusion in the preload list cannot easily be undone. Domains can be removed, but it takes months for a change to reach users with a Chrome update and we cannot make guarantees about other browsers.”(日本語訳:引用内容を日本語で示します) “Don’t request inclusion unless you’re sure that you can support HTTPS for your entire site and all its subdomains in the long term.”(日本語訳:引用内容を日本語で示します)
Practical translation: preload は genuinely great security posture, but もし あなた ever 必要とする to 配信する anything — legacy subdomain, acquired brand, internal tool — over plain HTTP again, あなた’re stuck waiting on ブラウザー release cycles to reach すべての ユーザー. Kinsta’s guide puts operational reality plainly: それ できる be difficult と time-consuming process to 得る あなたの domain removed. Treat preload as permanent.
なぜ HSTS は designed to hurt いつ things break
HSTS’s strictness は ない bug — それ’s entire security guarantee. web.dev spells out tradeoff: “Clients that have listed your site as a known HSTS Host are likely to hard-fail if your site ever has an error in its TLS configuration, (such as an expired certificate). HSTS is explicitly designed this way to ensure that network attackers can’t trick clients into accessing the site without HTTPS.” (web.dev).
“Clients that have listed your site as a known HSTS Host are likely to hard-fail if your site ever has an error in its TLS configuration, (such as an expired certificate). HSTS is explicitly designed this way to ensure that network attackers can’t trick clients into accessing the site without HTTPS.”(日本語訳:引用内容を日本語で示します)
conclusion Google draws は sentence I’d tattoo on anyone について to flip この on: “Don’t enable HSTS until you’re certain your site operation is robust enough to avoid ever deploying HTTPS with certificate validation errors.” (web.dev).
“Don’t enable HSTS until you’re certain your site operation is robust enough to avoid ever deploying HTTPS with certificate validation errors.”(日本語訳:引用内容を日本語で示します)
“Hard-fail” 意味する exactly その: no “proceed anyway” リンク, no click-通じて. On normal HTTPS ページ, expired cert throws scary interstitial その determined ユーザー できる bypass. On HSTS ホスト, ブラウザー refuses outright. So failure mode of missed certificate renewal 変更 category — から “traffic dips because people are scared off” to “the site is unreachable for every returning visitor.”
“traffic dips because people are scared off”(日本語訳:引用内容を日本語で示します) “the site is unreachable for every returning visitor.”(日本語訳:引用内容を日本語で示します)
Real-world lockout scenarios(日本語訳)
方法 HSTS bites in practice almost 常に trace back to includeSubDomains または
preload getting ahead of あなたの actual HTTPS coverage:
- ** forgotten subdomain.** あなた set
includeSubDomainsonexample.com, butlegacy.example.com( 旧 app, status ページ, vendor tool) だけ speaks HTTP または 持つ cert その doesn’t cover それ. すべての ブラウザー その saw header now refuses to load その subdomain. Nothing 変更された on その サーバー — ポリシー reached down と broke それ. - ** wildcard-cert gap.**
*.example.comwildcard coversfoo.example.combut ないfoo.bar.example.com( wildcard は 1つの DNS label deep). もし deeper subdomain relies on HTTP または mismatched cert,includeSubDomainslocks それ out. - ** expired cert on HSTS ホスト.** Renewal automation fails, cert lapses, と instead of bypassable warning あなた 得る site その’s down 向けに everyone whose ブラウザー remembers あなたの ポリシー — until あなた 得る valid cert back と それら reconnect と receive 新鮮 secure レスポンス. そこ は no faster override.
- Preload regret. あなた preloaded, その後 business 必要とする forces HTTP-だけ service under domain. Rolling その back は 2つの 分離する, non-instant jobs, ない 1つの: serving
max-age=0over HTTPS だけ clears learned ポリシー 向けに クライアント その reconnect 前に their 旧 max-age する’ve expired anyway, 一方で getting domain out of preload list は distinct submission その それでも takes ブラウザー release cycles — months — to reach ユーザー, independent of anything あなた 変更 on あなたの サーバー. - Local dev / staging collisions. Preloading
example.comとともにincludeSubDomainsできる makedev.example.comまたはlocalhost-style internal ホスト under same apex refuse HTTP, breaking local ワークフロー in surprising 方法.
None of これらの は 理由 to avoid HSTS. それら’re 理由 to stage それ: short
max-age 最初の, add includeSubDomains だけ 後に auditing すべての subdomain, と
reserve preload 向けに いつ あなた’re certain.
HSTS は ない ranking play (と doesn’t touch canonicalization)
To be clear on SEO framing: HSTS は ない ranking シグナル. HTTPS itself は
deliberately tiny 1つの — Google called それ “very lightweight
signal” affecting fewer than 1% of クエリ — と HSTS は layer on top of HTTPS, ない 分離する ranking input. それ また doesn’t directly control canonicalization または
インデックス登録. Google’s own documentation は より多くの specific than flat “doesn’t matter,”
though: Google prefers HTTPS as canonical over equivalent HTTP ページ except
いつ そこ’s invalid certificate, insecure ページ dependencies, HTTPS ページ その
redirects to HTTP, または HTTP rel="canonical" tag
(Google: consolidating duplicate URLs).
HSTS cannot fix または override いずれかの of その. それ’s ブラウザー-side ポリシー とともに no
influence on Google’s canonicalization logic — bad certificate または broken redirect
chain できる それでも push Google toward HTTP canonical regardless of 何 あなたの HSTS
header says. Canonicalization は driven by あなたの 301s, あなたの certificate, あなたの
rel="canonical", と あなたの internal リンク — HSTS earns その place 向けに security,
ユーザー trust, と closing SSL-stripping gap — する それ 向けに それらの 理由, 保つ あなたの
301s と certificate genuinely solid, と あなた’ll 決して see HSTS itself on rankings
report either 方法.
“very lightweight signal”(日本語訳:引用内容を日本語で示します)
もし あなた’re running broader HTTP→HTTPS 移行, HSTS は last thing あなた switch on, ない 最初の — それ belongs 後に 移行 持つ settled, as 部分 of wider site 移行 discipline.
AI要約
condensed take on Advanced version:
- HSTS =
Strict-Transport-Securityレスポンス header. それ tells ブラウザー to 常に 使う HTTPS 向けに あなたの domain, closing “first request problem” 301 alone leaves open — initial HTTP リクエスト から 新しい 訪問者 は insecure until redirect fires, which は SSL-stripping window. - 3つの directives:
max-age(required, seconds; resets on すべての レスポンス; removing header doesn’t clear learned ポリシー — あなた 必要がある 配信するmax-age=0over HTTPS instead),includeSubDomains(applies to すべての subdomains), とpreload( flag to opt へ ブラウザー preload list — token present, eligible, submitted, と 実際に listed は four 分離する states). - ** internal-upgrade crux:** いつ ブラウザー enforces HSTS それ rewrites URI to HTTPS internally 前に いずれかの リクエスト reaches サーバー — RFC 6797 doesn’t mandate specific status code 向けに その rewrite, though tools 多くの場合 表示する それ as 307 — so no サーバー sees それ と crawlers 決して see それ. あなたの サーバー-side 301s は それでも mandatory 向けに 検索 エンジン と リンク equity. HSTS は on top of あなたの 301s, 決して instead of それらを.
- Preload hardcodes あなたの domain へ ブラウザー via hstspreload.org (必要とする
max-age≥ 31536000,includeSubDomains, とpreload). それ’s close to irreversible — removal は 分離する submission その takes months to reach ユーザー, ブラウザー by ブラウザー. - Designed to hard-fail: HSTS ホスト とともに broken/expired cert refuses to load, とともに no click-通じて. Google: “Don’t enable HSTS until you’re certain your site operation is robust enough to avoid ever deploying HTTPS with certificate validation errors.”
- Lockout scenarios cluster around
includeSubDomainsと preload outrunning あなたの HTTPS coverage: forgotten HTTP subdomains, wildcard-cert depth gaps, lapsed certs, preload regret, と staging collisions. - ない ranking シグナル — と できる’t override canonicalization. Google prefers HTTPS as canonical except いつ cert は invalid, dependencies は insecure, HTTPS ページ redirects to HTTP, または canonical tag points to HTTP — と HSTS 持つ no power to fix または override いずれかの of その. 保つ あなたの 301s, certificate, と canonical tags doing SEO 機能する.
“first request problem”(日本語訳:引用内容を日本語で示します) “Don’t enable HSTS until you’re certain your site operation is robust enough to avoid ever deploying HTTPS with certificate validation errors.”(日本語訳:引用内容を日本語で示します)
公式ドキュメント
主要な-ソース documentation から ブラウザー と standards teams.
Google / web.dev
- Enable HTTPS on あなたの サーバー (web.dev) — HSTS section: header, SSL-stripping, hard-fail warning, と “don’t enable HSTS until you’re certain.”
- Site moves とともに URL 変更 — なぜ サーバー-side 301 は それでも mandatory (redirects don’t lose PageRank).
- Understanding ページ experience — どこ HTTPS (と by extension HSTS) sits in Google’s framing.
“don’t enable HSTS until you’re certain.”(日本語訳:引用内容を日本語で示します)
Standards & ブラウザー references
- MDN —
Strict-Transport-Security— full header syntax, 3つの directives, と どのように ブラウザー upgrades scheme. - RFC 6797 — HTTP Strict Transport Security (HSTS) — original specification.
- HSTS Preload List submission (hstspreload.org) — exact preload requirements と removal caveats, maintained by Chromium project.
出典からの引用
On—record statements から Google/web.dev と Chromium preload service. 各 リンク jumps to (または points at) quoted 文章 on ソース ページ.
web.dev (Google) — 何 HSTS する と warnings
- “Use HTTP Strict Transport Security (HSTS) to avoid the cost of the 301 redirect.” Jump to quote
- “First, use Strict Transport Security to tell clients they should always connect to
your server using HTTPS, even when following an
http://reference. This defeats attacks like SSL Stripping, and avoids the round-trip cost of the 301 redirect.” Jump to quote - “Clients that have listed your site as a known HSTS Host are likely to hard-fail if your site ever has an error in its TLS configuration, (such as an expired certificate). HSTS is explicitly designed this way to ensure that network attackers can’t trick clients into accessing the site without HTTPS.” Jump to quote
- “Don’t enable HSTS until you’re certain your site operation is robust enough to avoid ever deploying HTTPS with certificate validation errors.” Jump to quote
“Use HTTP Strict Transport Security (HSTS) to avoid the cost of the 301 redirect.”(日本語訳:引用内容を日本語で示します)
“First, use Strict Transport Security to tell clients they should always connect to
your server using HTTPS, even when following an http:// reference. This defeats
attacks like SSL Stripping, and avoids the round-trip cost of the 301 redirect.”(日本語訳:引用内容を日本語で示します)
“Clients that have listed your site as a known HSTS Host are likely to hard-fail if
your site ever has an error in its TLS configuration, (such as an expired
certificate). HSTS is explicitly designed this way to ensure that network attackers
can’t trick clients into accessing the site without HTTPS.”(日本語訳:引用内容を日本語で示します)
“Don’t enable HSTS until you’re certain your site operation is robust enough to
avoid ever deploying HTTPS with certificate validation errors.”(日本語訳:引用内容を日本語で示します)
Chromium preload service — hstspreload.org(日本語訳)
- “Be aware that inclusion in the preload list cannot easily be undone. Domains can be removed, but it takes months for a change to reach users with a Chrome update and we cannot make guarantees about other browsers.” ソース
- “Don’t request inclusion unless you’re sure that you can support HTTPS for your entire site and all its subdomains in the long term.” ソース
“Be aware that inclusion in the preload list cannot easily be undone. Domains can be removed, but it takes months for a change to reach users with a Chrome update and we cannot make guarantees about other browsers.”(日本語訳:引用内容を日本語で示します) “Don’t request inclusion unless you’re sure that you can support HTTPS for your entire site and all its subdomains in the long term.”(日本語訳:引用内容を日本語で示します)
MDN — header behavior
- “Before loading an
httpURL, the browser checks the domain name against its HSTS hosts list. If the domain name is a case insensitive match for an HSTS host or is a subdomain of one that specifiedincludeSubDomains, then the browser replaces the URL scheme withhttps.” ソース
“Before loading an http URL, the browser checks the domain name against its HSTS
hosts list. If the domain name is a case insensitive match for an HSTS host or is a
subdomain of one that specified includeSubDomains, then the browser replaces the
URL scheme with https.”(日本語訳:引用内容を日本語で示します)
すべき I enable HSTS — と どのように far?
Walk それ top to bottom. 各 “no” は stop sign, ない maybe. 1つの distinction 前に
あなた start: exact max-age figures below ( few minutes 向けに canary, year 向けに resting state) は Patrick’s operational staging recommendations, ない protocol
requirements — だけ hard numeric requirement は hstspreload.org’s preload
minimum (max-age ≥ 31536000), which は called out explicitly at その step. Adjust staging durations to あなたの own リスク tolerance と deployment cadence.
1. は あなたの whole site already on HTTPS とともに valid certificate, と 持つ 移行 settled?
- No → Don’t touch HSTS yet. Finish HTTPS 移行 最初の: 301 すべての URL, fix mixed コンテンツ, verify in 検索 Console. HSTS は last switch, ない 最初の.
- Yes → continue.
2. は あなたの certificate renewal automated と monitored (so lapse できる’t sneak up on あなた)?
- No → Fix その 最初の. On HSTS ホスト lapsed cert は hard outage, ない warning. 得る auto-renewal + expiry alerting in place, その後 continue.
- Yes → continue. Enable short
max-age(e.g. few minutes to day) とともに noincludeSubDomainsyet, と confirm nothing breaks.
3. 持つ あなた audited すべての subdomain — including www, legacy apps, status ページ,
と vendor ホスト — と confirmed 各 配信する valid HTTPS?
- No → 保つ
includeSubDomainsoff. Adding それ now する reach down と break いずれかの HTTP-だけ または mismatched-cert subdomain. - Yes → Raise
max-agetoward year と addincludeSubDomains. この は safe, strong resting state 向けに 大半の sites.
4. する あなた want to close 最初の-ever-visit gap too, と は あなた certain あなた’ll 決して 必要とする to 配信する anything under この domain over plain HTTP again?
- No / ない sure → Stop here.
max-age=31536000; includeSubDomains(no preload) は excellent posture. Preload’s marginal gain isn’t worth その irreversibility もし あなた’re unsure. - Yes, certain → Add
preloadflag と submit at hstspreload.org. Treat それ as permanent — removal takes months to reach ユーザー.
分離する, 常に-true branch: する enabling HSTS mean I できる drop my 301s?
- 決して. Crawlers don’t see HSTS’s ブラウザー-だけ internal upgrade. 保つ あなたの サーバー-side 301s regardless of どのように far down この tree あなた go.
HSTS rollout checklist(日本語訳)
機能する top to bottom — 各 stage gates next. staged durations here は
operational recommendations, ない protocol requirements — だけ hard number は
preload’s max-age ≥ 31536000 minimum in Stage 3.
前に あなた enable anything
- Entire site (apex +
www+ すべての subdomains) 配信する HTTPS とともに valid cert. - HTTP→HTTPS 301 redirects は in place サーバー-side, 1つの-to-1つの.
- Certificate auto-renewal は configured と expiry monitoring/alerting exists.
- HTTP→HTTPS 移行 持つ settled (検索 Console clean, no ranking freefall).
Stage 1 — prove それ’s safe
- Add
Strict-Transport-Securityとともに shortmax-age(minutes to day). - No
includeSubDomainsyet. Nopreloadyet. - Confirm site loads normally 全体で ブラウザー と その nothing broke.
Stage 2 — commit
- Raise
max-ageto at least31536000(1つの year). - Audit すべての subdomain (incl.
www, legacy, status, vendor) 向けに valid HTTPS. - だけ 後に その audit passes, add
includeSubDomains. - Re-テスト 各 subdomain loads over HTTPS.
Stage 3 — preload (optional, near-permanent)
- あなた’re certain あなた’ll 決して 必要とする HTTP under この domain again.
- Header は
max-age=31536000(または より多くの); includeSubDomains; preload. - HTTP on port 80 redirects to HTTPS on same ホスト.
- Submit と confirm status at hstspreload.org.
常に true — don’t skip
- サーバー-side 301s stay in place (crawlers 決して see ブラウザー-だけ internal upgrade).
- あなた 持つ documented rollback plan:
max-age=0served over HTTPS clears learned (non-preloaded) ポリシー 向けに クライアント その reconnect 前に それ する’ve expired anyway. Preloaded domains 必要とする 分離する, slower removal-form process instead.
メンタルモデル
1. HSTS は layer, ない replacement. サーバー-side 301 = 向けに crawlers と リンク equity. ブラウザー-side internal upgrade (から HSTS, 多くの場合 表示された as 307 though RFC doesn’t 必要とする その exact code) = 向けに returning humans と SSL-stripping protection. 異なる audiences, 異なる jobs. あなた 常に 必要とする 両方; HSTS 決して subtracts 301.
2. HSTS closes gap 301 できる’t. 301 protects second リクエスト onward. 最初の リクエスト — 前に redirect fires — は それでも HTTP. HSTS (向けに returning 訪問者) と preload (向けに 最初の-ever 訪問者) は だけ things その close その specific window.
3. Ratchet up, 決して jump.
max-age short → long. Bare header → includeSubDomains (後に subdomain audit) →
preload (だけ もし certain). すべての rung は reversible except last. Don’t skip
rungs to save time.
4. Strictness は feature, と それ cuts 両方 方法. same hard-fail その stops attacker また stops あなた いつ cert breaks. So prerequisite isn’t “do you want security?” — everyone する — それ’s “is your certificate operation robust enough to never fail?”
“do you want security?”(日本語訳:引用内容を日本語で示します) “is your certificate operation robust enough to never fail?”(日本語訳:引用内容を日本語で示します)
5. Preload は 1つの-方法 door.
Non-preloaded HSTS できる be relaxed 向けに クライアント next time それ makes secure
リクエスト と receives max-age=0 — no faster than その, と だけ 向けに クライアント who
reconnect. Preload takes それ step further: removal は 分離する submission その
takes months to reach ユーザー, ブラウザー release by ブラウザー release. Put それ in “decisions we can’t easily take back” bucket と treat それ accordingly.
“decisions we can’t easily take back”(日本語訳:引用内容を日本語で示します)
6. HSTS は orthogonal to rankings — but できる’t rescue bad canonical シグナル either. それ’s ない ranking シグナル と doesn’t directly control canonicalization または インデックス登録. Judge それ on security と trust, ない on SEO upside — そこ isn’t いずれかの. But それ’s ない safety net either: Google’s HTTPS-canonical preference それでも backs off 向けに bad cert, insecure dependencies, HTTPS→HTTP redirect, または HTTP canonical tag, と HSTS 持つ no power to override その.
HSTS — cheat sheet(日本語訳)
** header directives**
| Directive | Required? | 何 それ する |
|---|---|---|
max-age=<seconds> | Yes | どのように long ブラウザー enforces HTTPS-だけ. Resets on すべての レスポンス over HTTPS; removing header doesn’t clear それ — あなた 必要がある 配信する max-age=0 over HTTPS to disable 向けに reconnecting クライアント. |
includeSubDomains | No | Applies ポリシー to すべての subdomain too. Audit すべての subdomains 最初の. |
preload | No | Flag opting へ ブラウザー preload list (必要とする other 2つの + hstspreload.org). Token present, eligible, submitted, と 実際に listed は four 分離する states. Near-irreversible once listed. |
よくある header values (staging figures below は operational suggestions, ない protocol requirements — hard minimum は preload row)
| Value | Meaning |
|---|---|
max-age=300 | 5 minutes — safe 最初の テスト. |
max-age=31536000 | 1 year — standard resting state. |
max-age=31536000; includeSubDomains | 1 year, すべての subdomains — strong, non-preload. |
max-age=63072000; includeSubDomains; preload | 2 years + preload — shape あなた submit (hstspreload.org’s required minimum は max-age ≥ 31536000). |
max-age=0 (served over HTTPS) | Clears learned ポリシー 向けに クライアント その reconnect. する ない remove preload listing. |
Redirects: which 1つの, who sees それ
| Redirect | オリジン | Who sees それ | Job |
|---|---|---|---|
| 301 | あなたの サーバー | Crawlers と humans | SEO: understand 移行, carry リンク equity |
| Internal upgrade (多くの場合 表示された as 307; RFC 6797 doesn’t mandate exact code) | ブラウザー (HSTS) | Returning humans だけ — crawlers 決して see それ | Security/UX: skip insecure 最初の hop |
Fast facts
- Preload 必要とする
max-age≥ 31536000 +includeSubDomains+preload— verified に対して hstspreload.org’s 現在の 公開された requirements. - Preload removal は 分離する submission その takes months to reach ユーザー, ブラウザー by ブラウザー — treat as permanent.
- On HSTS ホスト, broken cert = hard-fail, no click-通じて.
- HSTS は ない ranking シグナル と する ない replace あなたの 301s.
Set HSTS header
Add header on あなたの HTTPS サーバー ブロック だけ, と start とともに short max-age
until あなた’ve confirmed nothing breaks. Add ; preload だけ いつ あなた intend to
submit to hstspreload.org — それ’s close to irreversible.
Apache (.htaccess)
<IfModule mod_headers.c>
# Start short (300s) to prove it's safe; raise to 31536000 once confident.
Header always set Strict-Transport-Security "max-age=300"
# Full posture once every subdomain is verified HTTPS:
# Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
# Only add ; preload when submitting to hstspreload.org:
# Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
</IfModule>Nginx
# On the HTTPS (listen 443) server block:
add_header Strict-Transport-Security "max-age=300" always;
# Full posture once subdomains are verified:
# add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
# Preload shape (near-irreversible):
# add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;確認 whether HSTS は set (と read それ back)
macOS / Linux
# Print only the Strict-Transport-Security response header
curl -sI https://example.com/ | grep -i strict-transport-security
# → strict-transport-security: max-age=31536000; includeSubDomainsWindows (PowerShell)
# Same check in PowerShell
(Invoke-WebRequest -Uri "https://example.com/" -Method Head).Headers["Strict-Transport-Security"]Inspect と clear HSTS entry in Chrome (DevTools / net-internals)
もし あなた’re テスト と ブラウザー 持つ “learned” HSTS ポリシー あなた 必要とする to clear:
1. Open a new tab and visit: chrome://net-internals/#hsts
2. Under "Query HSTS/PKP domain", enter your host to see the stored policy.
3. Under "Delete domain security policies", enter the host and Delete.
(This clears the *learned* policy — it does NOT remove a *preloaded* domain,
which lives in the browser binary and can't be cleared this way.)使う この to confirm あなたの header は 実際に being stored, と to reset テスト ホスト —
ない as fix 向けに 制作, どこ 回答 は to actively 配信する max-age=0 over
HTTPS (simply removing header doesn’t clear ポリシー クライアント already learned;
それ だけ takes effect once その クライアント reconnects と receives max-age=0
レスポンス).
HSTS 誤り その bite
1. Dropping あなたの 301s because “HSTS handles it.” classic. HSTS’s redirect は ブラウザー-だけ internal upgrade crawlers 決して see. Remove あなたの サーバー-side 301s と 検索 エンジン lose シグナル その consolidates あなたの 移行. 保つ 両方, 常に.
2. Enabling includeSubDomains 前に auditing subdomains. single 大半の よくある 方法 to take subdomain offline. もし いずれかの subdomain — legacy
app, status ページ, vendor ホスト, www itself — isn’t on valid HTTPS, ポリシー
reaches down と breaks それ 向けに すべての ブラウザー その saw header.
3. Jumping straight to 1つの-year max-age (または preload) on day 1つの.
No safety net. Start short (max-age=300), confirm nothing breaks, その後 ratchet up. long max-age set on misconfigured site は self-inflicted outage その lingers
in ブラウザー 向けに year.
4. Preloading 前に HTTPS は genuinely bulletproof. Preload は near-irreversible — removal takes months. Google’s own line: don’t enable HSTS until あなた’re certain あなたの site operation は robust enough. Preload multiplies その stakes.
5. Treating lapsed certificate as minor 問題. On non-HSTS site expired cert は bypassable warning. On HSTS ホスト それ’s hard outage とともに no click-通じて. もし あなた enable HSTS, cert renewal automation と expiry alerting stop being nice-to-haves.
6. Setting header on HTTP レスポンス. ブラウザー ignore HSTS 配信された over HTTP (by design — attacker できる inject または strip それ). それ 必要がある be sent on HTTPS レスポンス to count.
7. Forgetting wildcard-cert depth limit. *.example.com wildcard doesn’t cover foo.bar.example.com. Turn on
includeSubDomains と いずれかの deeper subdomain relying on その cert 得る locked out.
Incident playbook: HSTS ホスト は locked out
- Confirm failure から clean network と より多くの than 1つの ブラウザー. Record affected hostnames と exact certificate エラー. remembered HSTS ポリシー できる make symptom differ の間 returning と 最初の-time 訪問者.
- Restore valid HTTPS 最初の. もし certificate は expired, mismatched, または 不足している intermediate, renew または replace それ と deploy 完全な chain. HSTS ブラウザー する ない offer safe HTTP bypass.
- Map ポリシー scope. Inspect live
Strict-Transport-Securityheader と 決定する whetherincludeSubDomainsまたは preload extends outage beyond hostname その sent それ. - Inventory すべての affected subdomain. 向けに forgotten HTTP-だけ ホスト, put valid certificate と HTTPS endpoint in front of それ 前に deciding whether to 保つ, migrate, または redirect service.
- Correct ポリシー だけ 後に access は restored. もし scope は unsafe, 減らす または remove header on HTTPS レスポンス. その する ない instantly clear ポリシー already cached by ブラウザー, と preload removal は 分離する, 遅い process.
- Verify 回復. テスト apex,
www, と 各 affected subdomain 向けに valid chain, correct hostname, 1つの-hop HTTP→HTTPS redirect, と intended HSTS header. 保つ certificate-expiry monitoring on same inventory.
する ない tear down HTTP redirect または tell ユーザー to bypass warning. durable fix は valid HTTPS endpoint everywhere active HSTS ポリシー reaches.
Audit live HSTS ポリシー
Act as a security-minded technical SEO. Review this Strict-Transport-Security
header, the HTTP redirect response, and the supplied subdomain inventory.
For the header, parse max-age, includeSubDomains, and preload. Explain the effective
scope, identify subdomains whose HTTPS or certificate coverage is unproven, and
separate browser-side HSTS behavior from the server-side 301 search engines need. Use
GET requests (HEAD can behave differently on some servers/clients), and record which
client or tool produced each observation and its version, since internal-redirect
representation is client/tool-specific rather than a fixed protocol value.
Recommend the next rollout stage: keep a short max-age canary, lengthen max-age,
add includeSubDomains, or consider preload. Do not recommend preload unless the
evidence shows a valid certificate, same-host HTTP→HTTPS redirects, HTTPS on every
subdomain, max-age of at least 31536000, includeSubDomains, and the preload token.
Return: observed configuration, risks, blocking evidence, next action, rollback
constraint, and exact validation checks.Triage HSTS lockout
Given the affected hostnames, browser error, certificate details, DNS/CDN layout,
and live response headers, identify whether this is an expired certificate, hostname
mismatch, incomplete chain, includeSubDomains spillover, or preload issue. Prioritize
restoring valid HTTPS. Explain why removing a header does not immediately erase a
cached browser policy, then provide recovery and verification steps. HSTS inspection toolkit(日本語訳)
- HTTP Header Checker — inspect live
Strict-Transport-Securityheader と confirm それ 表示される on HTTPS レスポンス. curl -I— compare HTTP redirect とともに HTTPS header なしで relying on ブラウザー’s remembered HSTS state.- ブラウザー DevTools — confirm final レスポンス headers と certificate エラー seen by real クライアント.
- HSTS preload status — 確認 submission requirements と whether domain は already represented in preload process.
使う at least 2つの views: command-line output 表示する サーバー レスポンス, 一方で ブラウザー また 公開する クライアント-side enforcement と certificate hard failures. Prefer 得る over HEAD いつ comparing tools — いくつかの サーバー と クライアント represent 2つの differently — と note exact クライアント/tool/version behind すべての reading.
Staged HSTS rollout テスト
テスト 0: state matrix (run この 前に staging 変更)
HSTS status isn’t 1つの fact — それ’s several independent states その できる disagree. Track それらを separately, per hostname:
| Dimension | 何 to 確認 | Notes |
|---|---|---|
| Live HTTPS header, by レスポンス class | Strict-Transport-Security value on real HTTPS レスポンス (home ページ, deep ページ, API/asset レスポンス できる differ) | 使う 得る, ない HEAD — いくつかの サーバー/CDNs vary header emission by 方法 |
| Port-80 redirect | genuine サーバー-side redirect exists on port 80, ない 単に reliance on learned クライアント ポリシー | この は 何 最初の-time と non-HSTS クライアント 依存する on |
| Certificate coverage | Valid chain 向けに apex, www, と すべての subdomain in scope | Wildcard certs don’t cover second DNS label deep |
| Parent vs. entry-point subdomains | Whether directly-visited subdomain 持つ 実際に received その own HSTS レスポンス, since それ 可能性がある ない inherit parent’s learned ポリシー 方法 includeSubDomains implies on paper | テスト 各 entry point directly, ない 単に apex |
| Learned state, 新鮮 vs. returning クライアント | Behavior on クライアント その 持つ 決して seen あなたの header vs. 1つの その 持つ | Clear ブラウザー HSTS state (または 使う clean profile) to simulate “fresh” |
| Actual preload status | Whether domain は listed in given ブラウザー’s shipped 構築する, ない 単に submitted | 確認 via ブラウザー’s own status ページ/flag, ない 単に submission form |
Record クライアント, tool, と version 向けに すべての observation — internal-redirect representation と HSTS enforcement details vary 全体で ブラウザー, crawlers, と command-line tools, と stale reading から 1つの クライアント できる 見える like contradiction その isn’t real.
テスト 1: short max-age canary
- Purpose: Prove header は emitted だけ から healthy HTTPS レスポンス 前に committing クライアント to long ポリシー.
- 方法: Inspect representative templates と ホスト とともに HTTP Header Checker と
curl -I; compare deployed value とともに approved canary configuration. - Expected 結果: HTTPS レスポンス carry intended short
max-age; HTTP それでも 返す サーバー-side permanent redirect to HTTPS. - Failure trigger: 不足している または duplicated headers, unexpected long duration, certificate エラー, または いずれかの redirect loop.
- Next action: Fix header または HTTPS endpoint と 保つ rollout at canary stage.
テスト 2: includeSubDomains readiness
- Purpose: 防ぐ parent ポリシー から locking out forgotten hostname.
- 方法: テスト すべての DNS hostname in maintained subdomain inventory 向けに valid HTTPS レスポンス, correct certificate name, と 完全な chain.
- Expected 結果: すべての in-scope subdomain 機能する over HTTPS, including legacy, vendor, development, と deeper-レベル ホスト.
- Failure trigger: いずれかの HTTP-だけ service, expired または mismatched certificate, または hostname 不足している から inventory.
- Next action: Remediate または relocate ホスト 前に adding
includeSubDomains.
テスト 3: preload readiness
- Purpose: Verify near-permanent ポリシー satisfies documented submission requirements.
- 方法: Confirm valid certificate, same-ホスト HTTP→HTTPS redirects, HTTPS on すべての subdomains, と apex header とともに
max-ageof at least31536000,includeSubDomains, とpreload. - Expected 結果: すべての requirement passes と organization accepts 遅い removal path.
- Failure trigger: いずれかの failed technical requirement または unresolved 必要とする 向けに HTTP-だけ subdomain.
- Next action: する ない submit; remain on reversible staged ポリシー.
時間を使う価値のあるリソース
My speaking
- Better Safe Than Sorry とともに HTTPS — SMX East 2016 (SlideShare) — my deep-dive on TLS, よくある HTTPS implementation failures, と 移行 gotchas その HSTS 両方 closes と できる amplify. (Standing disclaimer applies: それ’s my understanding of これらの システム, と adoption stats in それ は から 2016.)
My 関連する writing
- Beginner’s Guide to Technical SEO — どこ HTTPS と HSTS fit in bigger picture.
から around industry
- Enable HTTPS on あなたの サーバー (web.dev) — Google’s own HSTS guidance: header, SSL-stripping, と hard-fail warning.
- MDN —
Strict-Transport-Security— 権威ある header reference: syntax, directives, と scheme-upgrade behavior. - HSTS Preload List submission (hstspreload.org) — Chromium project’s preload requirements と near-irreversibility caveats.
- RFC 6797 — HTTP Strict Transport Security — original specification, 向けに いつ あなた 必要とする exact wording of directive.
- HSTS — 何 それ は と どのように to 使う それ (Kinsta) — practical implementation guide covering ブラウザー-レベル internal redirect, preload list, と lock-in リスク.
- SSL Labs サーバー テスト (Qualys) — grade あなたの TLS configuration と confirm HSTS は being served correctly.
Stats と hard facts worth citing
- Preload 必要とする
max-age≥ 31536000 (1 year),includeSubDomains, とpreload. exact, non-negotiable submission bar 向けに ブラウザー-baked list. ソース - Preload removal takes months to reach ユーザー. から submission service: “inclusion in the preload list cannot easily be undone… it takes months for a change to reach users with a Chrome update.” この は number その makes preload 1つの-方法 door. ソース
- HSTS ホスト hard-fail on いずれかの TLS エラー. web.dev: クライアント その know あなたの site as HSTS ホスト “are likely to hard-fail if your site ever has an error in its TLS configuration.” No click-通じて — lapsed cert becomes outage. ソース
- HTTPS itself は “a very lightweight signal—affecting fewer than 1% of global queries.” Google’s own framing — と HSTS は layer on top of HTTPS, ない 分離する ranking input, so その SEO 重み は effectively zero. Right-size expectations accordingly. ソース
“inclusion in the preload list cannot easily be undone… it takes months for a change to reach users with a Chrome update.”(日本語訳:引用内容を日本語で示します) “are likely to hard-fail if your site ever has an error in its TLS configuration.”(日本語訳:引用内容を日本語で示します) “a very lightweight signal—affecting fewer than 1% of global queries.”(日本語訳:引用内容を日本語で示します)
テスト yourself: HSTS
Five quick 質問 on HSTS. Pick 回答 向けに 各, その後 確認.
変更履歴
2026年7月17日に更新。
編集概要と記録された変更の詳細。変更の詳細
-
変更の詳細な注記は現在英語でのみ提供されています。
完全な比較は利用できません — この改訂の以前のスナップショットがアーカイブされていません。