HSTS: HTTP rigoroso Transport Segurança para SEO
O que faz realmente HSTS, um sintaxis de um cabecera Strict-Transport-Security (max-age, includeSubDomains, preload), um redirecionamento interna que somente ocurre em o navegador e que os rastreadores nunca ven, por o que não sustituye um seus redirecionamentos permanentes e como preload pode dejarle atrapado — por Patrick Stox.
Idiomas
1 sinal de evidência nesta página
- Ferramenta relacionada ativaHTTP Header Checker
HSTS (HTTP rigoroso Transport Segurança) é uma cabecera de resposta Strict-Transport-Security —que somente se respeta quando llega por uma conexión segura— que indica ao navegador que use sempre HTTPS para seu dominio de ahí em adelante, cerrando um brecha insegura que um primera petição de um visitante novo sigue haciendo por HTTP antes de que se dispare seu 301. É uma política de um capa do navegador e por cliente que se suma um seus redirecionamentos do lado do servidor, não as sustituye: o RFC 6797 faz que o navegador reescriba o URI um HTTPS internamente antes de que salga nenhuma petição (um menudo se mostra como uma redirecionamento interna de estilo 307, embora o RFC não obliga um código de estado concreto), para que nenhum servidor ve nunca um forma HTTP e os rastreadores siguen necesitando seu 301 real para entender o alteração e transmitir o link equity. UM cabecera tem tres directivas: max-age (obligatoria), includeSubDomains e preload. Preload integra seu dominio em o próprio navegador por meio de hstspreload.org (requiere um max-age de ao menos um ano, includeSubDomains e o indicador preload) e é casi irreversible: um eliminação é um envío aparte que tarda meses em llegar um os usuários. HSTS também é deliberadamente implacable: um navegador que lhe conoce como host HSTS fallará em duro, sem posibilidade de continuar com um clic, se seu certificado llega um romperse. Assim que actívelo somente quando HTTPS seja realmente sólido em todos os subdominios, e trate preload como uma puerta de um somente sentido.
TL;DR — HSTS é uma pequeña instrucção que seu servidor envia um os navegadores e que dice: «usa sempre HTTPS para mi site, nunca HTTP sem cifrar». Tapa um diminuto agujero de segurança que deja abierto uma redirecionamento normal de HTTP→HTTPS, e não perjudica ao SEO. Mas é estricto um propósito: uma vez activado, um certificado roto deja seu site inaccesible sem que os visitantes puedan saltarse o aviso com um clic. Actívelo somente quando seu configuração de HTTPS seja realmente sólida.
O que é HSTS
Já sabe que deveria estar em HTTPS: um versión cifrada, com candado, de seu site. UM forma habitual de forzarlo é uma redirecionamento: quando alguien escribe http://yoursite.com, seu servidor lhe envia uma redirecionamento 301 um https://yoursite.com. Eso funciona, mas queda uma rendija abierta. Essa primerísima petição —um que se produce antes de que se dispare um redirecionamento— sigue viajando por HTTP sem cifrar. Um atacante conectado um mesma red Wi-Fi pode abalanzarse em essa ventana.
HSTS —HTTP rigoroso Transport Segurança— cierra essa brecha. É uma instrucção breve (uma «cabecera») que seu servidor adiciona um seus respostas, mas somente um as servidas por uma conexión genuinamente segura; um mesma cabecera enviada por HTTP sem cifrar se ignora, porque de o contrario um atacante poderia inyectarla ou eliminarla. Lhe dice um esse navegador concreto: durante os próximos tantos meses, nem siquiera intentes HTTP para este site; ve directo um HTTPS. É uma política que cada navegador aprende e almacena por seu conta, não algo que cambie seu servidor. Uma vez que um navegador um ha visto, actualiza os links http:// um https:// por sí mesmo, antes de que nada salga do dispositivo. 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 ajuda ou perjudica ao SEO?
Nem uma cosa nem um outra, de forma directa. HSTS é uma função de segurança e confianza, não uma palanca de posicionamiento. Não lhe hará subir em os resultados, mas, bem feito, tampoco lhe perjudicará. O único que há que entender é que HSTS não sustituye um seus redirecionamentos. Sigue necesitando seus redirecionamentos 301 reais do lado do servidor de HTTP um HTTPS, porque eso é o que Google e Bing ven e usam realmente. HSTS funciona dentro do navegador para visitantes humanos reais; os rastreadores não dependem de él. Mantenga ambos.
UM gran advertencia
HSTS é deliberadamente implacable. Uma vez que um navegador ha «aprendido» que seu site é somente HTTPS, se negará um carregar o site por completo se seu certificado llega um caducar ou um quedar mal configurado, sem nenhum botón de «continuar de todos modos». Esse é precisamente o objetivo (impide que os atacantes engañen um gente e um lleven um uma versión falsa em HTTP), mas significa que um certificado caducado pasa de ser um «aviso molesto» um «o site está caído para cualquiera que o haya visitado antes».
Também existe uma versión reforzada llamada preload que integra seu dominio em o próprio navegador. É excelente, mas salir depois de um lista preload é lento e doloroso: cuente em meses. Assim que preload é uma puerta de um somente sentido: atraviésela somente quando esté seguro. 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
¿Quiere um sintaxis de um cabecera, um redirecionamento interna que somente ocurre em o navegador e que os rastreadores nunca ven, os requisitos de preload e os escenarios reais de bloqueo? Cambie um pestaña Avanzado.
TL;DR — HSTS é um cabecera de resposta
Strict-Transport-Security, que somente se respeta quando um navegador um recebe por uma conexión segura e que se almacena por cliente como política futura para esse host. Cierra o «problema de um primera petição» que uma 301 por sí sola deja abierto: um petição HTTP inicial de um visitante novo é insegura até que se dispara um redirecionamento, e essa é um ventana que busca um atacante que practique SSL stripping. Tres directivas:max-age(obligatoria, em segundos),includeSubDomainsepreload. Quando um navegador aplica HSTS, reescribe o URI um HTTPS internamente, antes de que nenhuma petição llegue um servidor —o RFC 6797 não obliga um código de estado concreto para essa reescritura, embora as ferramentas suelen mostrarla como um 307—, para que seus 301 do lado do servidor siguen siendo obligatorias para os mecanismos de busca e para um autoridade de links (link equity); HSTS se suma um elas, não as sustituye. Preload integra seu dominio em o navegador por meio de hstspreload.org (requieremax-age≥ 31536000,includeSubDomainsepreload) e é casi irreversible: um eliminação é um envío aparte que tarda meses em llegar um os usuários. E HSTS está diseñado para fallar em duro ante qualquer error de certificado, assim que actívelo somente quando HTTPS seja robusto em todos os subdominios.
O hub de HTTPS apresenta o HSTS como uma proteção na camada do navegador que fica por cima dos seus 301s. esta página é o mergulho profundo: um sintaxe exata do cabeçalho, o redirecionamento interno que confunde profissionais de SEO, um quase irreversibilidade da lista de preload e as formas reais pelas quais o HSTS bloqueia o acesso de usuários.
O problema que HSTS resuelve realmente: um primera petição
Imagine um site migrado correctamente. todas as URL http:// redirigen com um 301 um seu gemela https://, o certificado é válido, as canónicas apuntan um HTTPS. Parece hermético. Não é do todo.
Quando um visitante completamente novo escribe yoursite.com (sem esquema) ou faz clic em um link antigo http://yoursite.com, um primera petição do navegador sale por HTTP sem cifrar. Seu servidor responde com um 301 e todas as petições posteriores são seguras. Mas esse primer viagem de ida e vuelta ocurrió em claro, e essa é exactamente um ventana que busca um atacante que practique SSL stripping em um mesma red. Intercepta um petição HTTP, mantém um víctima em HTTP enquanto faz de proxy em HTTPS para seu servidor, e lee ou reescribe todo.
HSTS elimina essa ventana para cualquiera que haya visitado o site antes. web.dev é directo sobre o mecanismo:
“use rigoroso Transport Segurança para tell clients eles deve sempre connect para seu servidor usando HTTPS, even quando following um http:// reference. este defeats attacks like SSL Stripping, e avoids o round-trip cost de o 301 redirecionamento.”
(traducção) «utilice rigoroso Transport Segurança para indicar um os clientes que sempre devem conectarse um seu servidor mediante HTTPS, incluso ao seguir uma referencia http://. Esto neutraliza ataques como o SSL Stripping e evita o costo do viagem de ida e vuelta de um redirecionamento 301.»
“This defeats attacks like SSL Stripping”
(tradução) «este defeats attacks like SSL Stripping»
(web.dev).
Essa última cláusula também importa para o desempenho: um navegador que vuelve se salta por completo o viagem de ida e vuelta HTTP→HTTPS. 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
Dos condições límite que conviene precisar. Primeiro, HSTS é uma política almacenada e por cliente: vive em o estado próprio de esse navegador concreto para esse host, aprendida de uma cabecera entregada por uma conexión segura; um mesma cabecera enviada em uma resposta HTTP se ignora diretamente (um atacante capaz de inyectar ou eliminar cabeceras em HTTP sem cifrar poderia, de outro modo, neutralizarla), e um cliente que nunca um ha recibido —uma instalação nova, outro navegador, um rastreador— não tem nenhuma política que aplicar. Segundo, um reescritura tem em conta o esquema e o puerto: uma petição com puerto 80 implícito pasa um ser uma petição com puerto 443 implícito, mas se o URI original nombraba um puerto explícito não predeterminado, o navegador conserva esse mesmo número de puerto e simplemente o contacta por HTTPS.
UM sintaxis de um cabecera
HSTS é uma única cabecera de resposta com até tres directivas. Segundo MDN, as formas são:
Strict-Transport-Security: max-age=31536000
Strict-Transport-Security: max-age=31536000; includeSubDomains
Strict-Transport-Security: max-age=63072000; includeSubDomains; preloadmax-age=<seconds>— obligatoria. “O tempo, em seconds, que o navegador deve remember que um host é somente para ser accessed usando HTTPS” (traducção) «O tempo, em segundos, que o navegador deve recordar que somente é possível acceder um host mediante HTTPS» (MDN).31536000é um ano;63072000, dos. O contador se reinicia com cada resposta que lleve um cabecera, para que um site activo renueva seu política de forma continua. Se trata de um estado relativo e por cliente: eliminar um cabecera sem mas não um borra de inmediato; um navegador que já aprendió um política sigue aplicándola até que se agota omax-agealmacenado. para desactivar HSTS em os clientes que já um aprendieron, há que servir activamentemax-age=0em uma resposta segura; o navegador olvidará então um política em seu siguiente visita segura. (max-age=0borra somente uma política aprendida: não elimina um dominio de um lista preload, que é aparte.)includeSubDomains— opcional. “Se este directive é specified, o HSTS policy applies para todos subdomains de o host’s domain as well” (traducção) «Se se especifica esta directiva, um política HSTS se aplica também um todos os subdominios do dominio do host» (MDN). Potente e peligrosa um partes iguales: vea os escenarios de bloqueo mas abajo.preload— opcional. Um indicador que señala seu intenção de estar em um lista preload do navegador. por sí somente não faz nada; é um requisito previo para enviar um solicitação um 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
O comportamiento, de novo segundo MDN:
“Antes loading um http URL, o navegador checks o domain nome contra seu HSTS hosts lista. Se o domain nome é um caso insensitive match para um HSTS host ou é um subdomain de um que specified includeSubDomains, então navegador replaces o URL scheme com https.”
(traducção) «Antes de carregar uma URL http, o navegador coteja o nome de dominio com seu lista de hosts HSTS. Se o nome de dominio coincide, sem distinguir mayúsculas e minúsculas, com um host HSTS ou é um subdominio de uno que especificó includeSubDomains, o navegador sustituye o esquema de um URL por https.»
UM actualização interna que os rastreadores nunca ven (aqui está o meollo para o SEO)
Esto é o que pior se entiende de HSTS, e um razón por um que não pode sustituir um seus redirecionamentos.
Quando um navegador actualiza uma petição http:// sob HSTS, reescribe o URI um HTTPS internamente, antes de realizar nenhuma petição de red: o RFC 6797 exige um sustitução do esquema em sí, mas não obliga um código de estado concreto para ella (RFC 6797 §8.3), para que um navegador ou uma ferramenta de rastreo podem representar esse etapa interno como prefieran; muitos o mostram como um 307 interno, mas eso é específico do cliente ou um ferramenta, não uma garantía do protocolo. O que importa para o SEO é mas simple e se cumple com independencia de um etiqueta: não se contacta com nenhum servidor para um versión HTTP, assim que nenhum rastreador llega um verla. Googlebot e Bingbot não llevan consigo uma política HSTS aprendida como sí faz o Chrome de um humano que vuelve: acceden um seu servidor em frío, e o que precisam encontrar ali é uma 301 real do lado do servidor. 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
“301 and other permanent redirects don’t cause a loss in PageRank”
(tradução) «redirecionamentos 301 e outros redirecionamentos permanentes não causam perda de PageRank»
Assim que um regra é tajante: HSTS não sustituye um seus 301 do lado do servidor. UM 301 é o que os mecanismos de busca usam para entender o alteração de protocolo e para consolidar sinais (301 e outro permanent redirecionamentos não cause um perda em PageRank — (traducção) «as redirecionamentos 301 e otras redirecionamentos permanentes não provocan uma pérdida de PageRank», segundo Google). UM actualização interna que somente ocurre em o navegador é uma capa de experiência do usuário e segurança por encima. Precisa ambas, haciendo trabajos distintos:
- 301 (do lado do servidor): para rastreadores, indexação e link equity.
- Actualização interna de estilo 307 (do lado do navegador, por HSTS): para humanos que vuelven e para um protecção frente ao SSL stripping; um representação exacta do estado varía segundo o cliente ou um ferramenta.
Qualquer guía que lhe diga que HSTS «se encarga de um redirecionamento, assim que pode eliminar seu 301» está equivocada de uma forma que lhe saldrá cara sem que se dé conta.
HSTS preload: um versión casi permanente
max-age protege um os visitantes que vuelven, mas tem um problema de arranque: um visitante que llega por primera vez e nunca ha recibido seu cabecera sigue expuesto em essa petição inicial. Preload o resuelve codificando seu dominio em o próprio código fuente do navegador, para que o navegador sabe que você é somente HTTPS antes incluso de haberse conectado nunca.
Pode darse de alta em hstspreload.org. Os requisitos são exactos:
- “Serve um valid certificate.” (traducção) «Sirva um certificado válido.»
- “Redirecionamento de HTTP para HTTPS em o mesmo host, se você são listening em port 80.” (traducção) «Redirija de HTTP um HTTPS em o mesmo host, se está escuchando em o puerto 80.»
- “Serve todos subdomains over HTTPS” (traducção) «Sirva todos os subdominios por HTTPS», incluido em particular o subdominio
wwwse existe um registro DNS. - Em um resposta HTTPS do dominio base, uma cabecera HSTS onde “o
max-agedeve ser pelo menos31536000seconds (1 year),” (traducção) «omax-agedeve ser de ao menos31536000segundos (1 ano)», “oincludeSubDomainsdirective deve ser specified,” (traducção) «deve especificarse um directivaincludeSubDomains» e “opreloaddirective deve ser specified.” (traducção) «deve especificarse um directivapreload». (hstspreload.org)
por eso o exemplo de dos anos de mas arriba (max-age=63072000; includeSubDomains; preload) é um forma que um gente envia. Tenha em conta que estes são os requisitos exactos de envío tal e como os publica hstspreload.org: trátelos como o listón real, não como uma constante permanente, e vuelva um consultar um página em vivo antes de enviar seu solicitação.
Conviene ter claros cuatro estados distintos, porque se confunden constantemente:
| Estado | O que é cierto em realidade |
|---|---|
| Token presente | Seu cabecera inclui preload. Esto é somente um indicador: por sí mesmo não faz nada e não lhe inclui em nenhuma lista. |
| Elegible | Seu site cumple os cuatro requisitos de hstspreload.org anteriores (certificado, redirecionamento, subdominios, forma de um cabecera). Todavía não está em um lista. |
| Enviado / pendiente | Ha enviado um solicitação em hstspreload.org e está em cola para incluirse em uma próxima versión do navegador. Todavía não se aplica um usuários reais. |
| Realmente listado | O dominio está integrado em uma compilação publicada de um navegador concreto. UM aplicação somente existe para os usuários de essa compilação: o despliegue não é instantáneo nem universal entre navegadores. |
UM eliminação recorre os mismos cuatro estados um inversa, e com um mesma lentitud: quitar um directiva preload de seu cabecera lhe faz elegible para o formulario de eliminação, depois o envío queda pendiente, e o dominio sigue aplicándose para qualquer usuário com uma compilação do navegador que todavía o incluya, até que essa compilação quede fuera de circulação.
Agora, um parte que convierte preload em uma puerta de um somente sentido. Do próprio site de envío: “Ser aware que inclusion em o preload lista cannot easily ser undone. Domains pode ser removed, mas isso takes months para um altere para reach usuários com um Chrome update e nós cannot faça garante sobre outro browsers.” (traducção) «Tenha em conta que um inclusión em um lista preload não é possível deshacer com facilidade. Os dominios se podem eliminar, mas um alteração tarda meses em llegar um os usuários com uma actualização de Chrome e não podemos oferecer garantías respecto um otros navegadores.» (hstspreload.org). E seu próprio consejo: “Não solicitação inclusion unless você está sure que você pode support HTTPS para seu entire site e todos seu subdomains em o long term.” (traducção) «Não solicite um inclusión um menos que esté seguro de que pode manter HTTPS em todo seu site e em todos seus subdominios um largo plazo.»
Traducção práctica: preload é uma postura de segurança realmente excelente, mas se alguna vez precisa servir qualquer cosa —um subdominio heredado, uma marca adquirida, uma ferramenta interna— por HTTP sem cifrar de novo, se quedará esperando um que os ciclos de publicação de os navegadores lleguen um todos os usuários. UM guía de Kinsta expone um realidade operativa sem rodeos: pode ser um proceso difícil e lento conseguir que se elimine seu dominio. Trate preload como algo permanente.
por o que HSTS está diseñado para doler quando algo se rompe
UM rigidez de HSTS não é um fallo: é toda seu garantía de segurança. web.dev explica um contrapartida:
“Clients que têm listed seu site as um known HSTS Host são provável para hard-fail se seu site ever tem um error em seu TLS configuração, (such as um expired certificate). HSTS é explicitly designed este way para ensure que network attackers não pode trick clients em accessing o site sem HTTPS.”
(traducção) «É probable que os clientes que han registrado seu site como um host HSTS conocido fallen em duro se seu site llega um ter um error em seu configuração TLS (como um certificado caducado). HSTS está diseñado explícitamente assim para garantizar que os atacantes de red não puedan engañar um os clientes para que accedan ao site sem HTTPS.»
“Clients that have listed your site as a known HSTS Host”
(tradução) «Clients que têm listed seu site as um known HSTS Host»
(web.dev).
UM conclusión que saca Google é um frase que lhe tatuaría um cualquiera que esté um punto de activar esto: “Não enable HSTS until você está certain seu site operation é robust enough para avoid ever deploying HTTPS com certificate validation errors.” (traducção) «Não active HSTS até que esté seguro de que um operação de seu site é o bastante robusta como para não desplegar nunca HTTPS com errores de validação do certificado.» (web.dev).
«Fallar em duro» significa exactamente eso: nenhum link de «continuar de todos modos», nenhum clic para saltárselo. Em uma página HTTPS normal, um certificado caducado mostra um intersticial alarmante que um usuário decidido pode esquivar. Em um host HSTS, o navegador se niega em redondo. Assim que o modo de fallo de uma renovação de certificado olvidada altera de categoria: pasa de «o tráfico baja porque um gente se asusta» um «o site é inaccesible para todos os visitantes que já habían estado antes».
Escenarios reais de bloqueo
As formas em que HSTS muerde em um práctica casi sempre se remontan um que includeSubDomains ou preload se adelantan um seu cobertura real de HTTPS:
- O subdominio olvidado. Activa
includeSubDomainsemexample.com, maslegacy.example.com(uma aplicação antiga, uma página de estado, uma ferramenta de um proveedor) somente habla HTTP ou tem um certificado que não cubre. todos os navegadores que vieron um cabecera se niegan agora um carregar esse subdominio. Em esse servidor não cambió nada: um política se extendió para abajo e o rompió. - O hueco do certificado comodín. Um comodín
*.example.comcubrefoo.example.commas nãofoo.bar.example.com(um comodín cubre uma sola etiqueta DNS de profundidade). Se um subdominio mas profundo depende de HTTP ou de um certificado que não coincide,includeSubDomainso deja bloqueado. - O certificado caducado em um host HSTS. UM automatização de um renovação falla, o certificado vence e, em vez de um aviso que é possível esquivar, tem um site caído para todos aquellos cuyo navegador recuerde seu política, até que recupere um certificado válido e se reconecten e reciban uma resposta segura nova. Não há forma mas rápida de anularlo.
- O arrepentimiento por preload. Hizo preload e depois uma necesidade de negócio obliga um poner um servicio somente por HTTP sob o dominio. Revertirlo são dos trabajos distintos e nada instantáneos, não uno: servir
max-age=0por HTTPS somente borra um política aprendida em os clientes que se reconecten antes de que seu antigo max-age hubiera expirado de todos modos, enquanto que sacar o dominio de um lista preload é um envío aparte que aun assim tarda ciclos de publicação de os navegadores —meses— em llegar um os usuários, com independencia de o que cambie em seu servidor. - Colisiones com desarrollo local e staging. Fazer preload de
example.comcomincludeSubDomainspode fazer quedev.example.comou um host interno de tipolocalhostsob o mesmo apex rechacen HTTP, rompiendo flujos de trabajo locales de formas sorprendentes.
Nada de esto é motivo para evitar HSTS. São motivos para desplegarlo por fases: primeiro um max-age corto, añadir includeSubDomains somente depois de auditar todos os subdominios e reservar preload para quando esté seguro.
HSTS não é uma jugada de posicionamiento (e não decide um URL principal)
para ser claros sobre o encuadre SEO: HSTS não é um fator de posicionamiento. HTTPS em sí mesmo é uno deliberadamente diminuto —Google o llamó uma “very lightweight sinal” (traducção) «sinal muito ligera» que afecta um menos do 1 % de as consultas— e HSTS é uma capa sobre HTTPS, não uma entrada de posicionamiento aparte. Tampoco decide diretamente um URL principal nem um indexação. Não entanto, um própria documentação de Google é mas específica que um simple «não importa»: Google prefiere HTTPS como URL principal frente um uma página HTTP equivalente excepto quando há um certificado não válido, dependencias inseguras em um página, uma página HTTPS que redirige um HTTP ou uma etiqueta rel="canonical" em HTTP (Google: consolidating duplicate URLs). HSTS não pode arreglar nem anular nada de eso. É uma política do lado do navegador sem nenhuma influencia em um elecção de Google: um certificado defectuoso ou uma cadeia de redirecionamentos rota todavía podem empujar um Google para uma URL principal em HTTP, diga o que diga seu cabecera HSTS. Essa elecção um impulsan seus redirecionamentos, seu certificado, seu rel="canonical" e seus links internos. HSTS se gana seu site por segurança, confianza do usuário e por cerrar um brecha do SSL stripping: hágalo por essas razones, mantenga seus redirecionamentos e seu certificado realmente sólidos, e de todos modos nunca verá HSTS em um relatório de posições.
Se está haciendo o alteração general de HTTP→HTTPS, HSTS é o último que activa, não primeiro: lhe corresponde depois de que um migração se haya asentado, como parte de um disciplina mas amplia de um migração web.
Resumen de IA
Uma versión condensada de um pestaña Advanced:
- HSTS = um cabecera de resposta
Strict-Transport-Security. Indica um os navegadores que usen sempre HTTPS para seu dominio, cerrando o «problema de um primera petição» que uma 301 por sí sola deja abierto: um petição HTTP inicial de um visitante novo é insegura até que se dispara um redirecionamento, que é um ventana do SSL stripping. - Tres directivas:
max-age(obligatoria, em segundos; se reinicia com cada resposta; eliminar um cabecera não borra uma política já aprendida: em seu lugar há que servirmax-age=0por HTTPS),includeSubDomains(se aplica um todos os subdominios) epreload(um indicador para darse de alta em um lista preload do navegador; token presente, elegible, enviado e realmente listado são cuatro estados distintos). - O meollo de um actualização interna: quando um navegador aplica HSTS, reescribe o URI um HTTPS internamente antes de que nenhuma petição llegue um servidor —o RFC 6797 não obliga um código de estado concreto para essa reescritura, embora as ferramentas suelen mostrarla como um 307—, para que nenhum servidor um ve e os rastreadores nunca um ven. Seus 301 do lado do servidor siguen siendo obligatorias para os mecanismos de busca e para o link equity. HSTS se suma um seus 301, nunca as sustituye.
- Preload codifica seu dominio em o navegador por meio de hstspreload.org (requiere
max-age≥ 31536000,includeSubDomainsepreload). É casi irreversible: um eliminação é um envío aparte que tarda meses em llegar um os usuários, navegador por navegador. - Diseñado para fallar em duro: um host HSTS com um certificado roto ou caducado se niega um carregar, sem posibilidade de continuar com um clic. Google: “Não enable HSTS until você está certain seu site operation é robust enough para avoid ever deploying HTTPS com certificate validation errors.” (traducção) «Não active HSTS até que esté seguro de que um operação de seu site é o bastante robusta como para não desplegar nunca HTTPS com errores de validação do certificado.»
- Os escenarios de bloqueo se agrupan em torno um
includeSubDomainse preload adelantándose um seu cobertura de HTTPS: subdominios HTTP olvidados, huecos de profundidade de os certificados comodín, certificados vencidos, arrepentimiento por preload e colisiones com staging. - Não é um fator de posicionamiento nem pode anular um elecção de URL principal. Google prefiere HTTPS excepto quando um certificado não é válido, as dependencias são inseguras, uma página HTTPS redirige um HTTP ou um etiqueta principal apunta um HTTP, e HSTS não tem poder para arreglar nem anular nada de eso. Deje que seus redirecionamentos, seu certificado e seus etiquetas principais hagan o trabajo de SEO.
Documentação oficial
Documentação de fuente primaria de os equipos de navegadores e de estándares.
Google / web.dev
- Enable HTTPS em seu servers (web.dev) — um secção sobre HSTS: um cabecera, o SSL stripping, um advertencia sobre o fallo em duro e o «não active HSTS até que esté seguro».
- site moves com URL alterações — por o que um 301 do lado do servidor sigue siendo obligatoria (as redirecionamentos não pierden PageRank).
- Understanding página experience — onde encaja HTTPS (e por extensión HSTS) em o encuadre de Google.
Estándares e referencias de navegadores
- MDN —
Strict-Transport-Security— sintaxis completa de um cabecera, as tres directivas e como o navegador actualiza o esquema. - RFC 6797 — HTTP rigoroso Transport Segurança (HSTS) — um especificação original.
- HSTS Preload Lista submission (hstspreload.org) — os requisitos exactos de preload e as advertencias sobre um eliminação, mantenidos por o proyecto Chromium.
Citas de um fuente
Declarações oficiales de Google/web.dev e do servicio de preload de Chromium. cada link salta ao pasagem citado em um página de origen (ou apunta um él).
web.dev (Google) — o que faz HSTS e as advertencias
- “use HTTP rigoroso Transport segurança (HSTS) para avoid o cost de o 301 redirecionamento.”
(tradução) «use o HTTP rigoroso Transport segurança (HSTS) para evitar o custo do redirecionamento 301.»
“Use HTTP Strict Transport Security (HSTS) to avoid the cost of the 301 redirect”
(tradução) «use HTTP rigoroso Transport segurança (HSTS) para avoid o cost de o 301 redirecionamento»
Ir para um citação - “primeiro, use rigoroso Transport segurança para tell clients eles deve sempre connect para
seu servidor usando HTTPS, even quando following um
http://reference. este defeats attacks like SSL Stripping, e avoids o round-trip cost de o 301 redirecionamento.” (tradução) «Primeiro, use o rigoroso Transport segurança para informar aos clientes que eles devem sempre se conectar ao seu servidor usando HTTPS, mesmo ao seguir uma referênciahttp://. Isso neutraliza ataques como o SSL Stripping e evita o custo de ida e volta do redirecionamento 301.» Ir para um citação - “Clients que têm listed seu site as um known HSTS Host são provável para hard-fail se seu site ever tem um error em seu TLS configuração, (such as um expired certificate). HSTS é explicitly designed este way para ensure que network attackers não pode trick clients em accessing o site sem HTTPS.” (tradução) «Clientes que listaram seu site como um Host HSTS conhecido provavelmente falharão gravemente se o seu site tiver algum erro na configuração TLS (como um certificado expirado). O HSTS é explicitamente projetado dessa forma para garantir que atacantes de rede não possam enganar os clientes para acessar o site sem HTTPS.» Ir para um citação
- “não enable HSTS until você está certain seu site operation é robust enough para avoid ever deploying HTTPS com certificate validation errors.” (tradução) «Não ative o HSTS até ter certeza de que um operação do seu site é robusta o suficiente para evitar implantar HTTPS com erros de validação de certificado.» Ir para um citação
Servicio de preload de Chromium — 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.” (tradução) «A inclusão na lista de pré-carregamento não pode ser desfeita facilmente. É possível remover domínios, mas a alteração leva meses para chegar aos usuários por uma atualização do Chrome, sem garantias para outros navegadores.» Fonte
- “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.” (tradução) «Não solicite a inclusão sem ter certeza de que consegue manter HTTPS em todo o site e em todos os subdomínios no longo prazo.» Fonte
MDN — o comportamiento de um cabecera
- “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.” (tradução) «Antes de carregar uma URLhttp, o navegador compara o domínio com sua lista de hosts HSTS. Se houver correspondência sem distinção entre maiúsculas e minúsculas, ou se ele for subdomínio de um host que especificouincludeSubDomains, o navegador troca o esquema da URL porhttps.» Fonte
¿Deveria activar HSTS e até onde?
Recórralo de arriba abajo. cada «não» é uma sinal de stop, não um talvez. Uma distinção antes de empezar: as cifras exactas de max-age que aparecem um continuação (alguns minutos para uma teste canaria, um ano para um estado de reposo) são as recomendações operativas de despliegue por fases de Patrick, não requisitos do protocolo; o único requisito numérico estricto é o mínimo de preload de hstspreload.org (max-age ≥ 31536000), que se indica explícitamente em esse etapa. Ajuste as durações de as fases um seu própria tolerancia ao riesgo e um seu cadencia de despliegue.
1. ¿está já todo seu site em HTTPS com um certificado válido e se ha asentado um migração?
- Não → Não toque HSTS todavía. Termine primeiro um migração um HTTPS: redirija com 301 todas as URL, corrija o conteúdo mixto, verifique em Pesquisa Console. HSTS é o último interruptor, não primeiro.
- Sí → continúe.
2. ¿UM renovação de seu certificado está automatizada e monitorizada (para que um vencimiento não lhe pille por sorpresa)?
- Não → Arréglelo primeiro. Em um host HSTS, um certificado vencido é uma caída total, não um aviso. Ponga em marcha um renovação automática e as alertas de vencimiento, e depois continúe.
- Sí → continúe. Active um
max-agecorto (por exemplo, de alguns minutos um dia) semincludeSubDomainstodavía, e confirme que nada se rompe.
3. ¿Ha auditado todos os subdominios —incluidos www, aplicações heredadas, páginas de estado e hosts de proveedores— e ha confirmado que cada uno sirve HTTPS válido?
- Não → Mantenga
includeSubDomainsdesactivado. Añadirlo agora se extendería para abajo e rompería qualquer subdominio que somente funcione por HTTP ou com um certificado que não coincida. - Sí → Suba
max-ageaté um ano e añadaincludeSubDomains. este é um estado de reposo seguro e sólido para um mayoría de os sites.
4. ¿Quiere cerrar também um brecha de um primerísima visita e está seguro de que nunca necesitará servir nada sob este dominio por HTTP sem cifrar outra vez?
- Não / não estoy seguro → Pare aqui.
max-age=31536000; includeSubDomains(sem preload) é uma postura excelente. UM ganancia marginal de preload não compensa seu irreversibilidade se não tem claro. - Sí, seguro → Añada o indicador
preloade envíe um solicitação em hstspreload.org. Trátelo como permanente: um eliminação tarda meses em llegar um os usuários.
Ramo separado, sempre verdadeiro: ativar o HSTS significa que posso abandonar meus 301s?
- nunca. Os rastreadores não veem o upgrade interno apenas do navegador do HSTS. Mantenha seus 301s não lado do servidor, independentemente de quão longe você vá nesta árvore.
Lista de comprobação para desplegar HSTS
Trabagem de arriba abajo: cada etapa condiciona um siguiente. As durações por fases que aparecem aqui são recomendações operativas, não requisitos do protocolo; um única cifra estricta é o mínimo de max-age ≥ 31536000 para preload de um etapa 3.
Antes de activar nada
- Todo o site (apex +
www+ todos os subdominios) sirve HTTPS com um certificado válido. - As redirecionamentos 301 de HTTP→HTTPS estão em seu site, do lado do servidor e uma um uma.
- UM renovação automática do certificado está configurada e existe monitorização ou alertas de vencimiento.
- UM migração de HTTP→HTTPS se ha asentado (Pesquisa Console limpio, sem caída libre de posições).
Etapa 1: demostrar que é seguro
- Añada
Strict-Transport-Securitycom ummax-agecorto (de minutos um dia). - Sem
includeSubDomainstodavía. Sempreloadtodavía. - Confirme que o site carrega com normalidade em distintos navegadores e que não se rompió nada.
Etapa 2: comprometerse
- Suba
max-ageao menos um31536000(um ano). - Audite todos os subdominios (incl.
www, heredados, de estado, de proveedores) em busca de HTTPS válido. - Somente depois de que essa auditoria pase, añada
includeSubDomains. - Vuelva um verificar que cada subdominio carrega por HTTPS.
Etapa 3: preload (opcional, casi permanente)
- está seguro de que nunca volverá um necesitar HTTP sob este dominio.
- UM cabecera é
max-age=31536000(ou mas); includeSubDomains; preload. - HTTP em o puerto 80 redirige um HTTPS em o mesmo host.
- Envíe um solicitação e confirme o estado em hstspreload.org.
Sempre verdadeiro — não pule
- 301s não lado do servidor permanecem não lugar (os rastreadores nunca veem o upgrade interno apenas do navegador).
- Você tem um plano de rollback documentado:
max-age=0servido via HTTPS limpa uma política aprendida (não pré-carregada) para clientes que se reconectam antes que ela expiraria de qualquer forma. Domínios pré-carregados precisam do processo separado e mas lento de remoção.
Os modelos mentales
1. HSTS é uma capa, não um sustituto. 301 do lado do servidor = para rastreadores e link equity. Actualização interna do lado do navegador (por HSTS, um menudo mostrada como um 307 embora o RFC não exija esse código exacto) = para humanos que vuelven e para um protecção frente ao SSL stripping. Públicos distintos, trabajos distintos. Sempre precisa ambos; HSTS nunca resta uma 301.
2. HSTS cierra uma brecha que um 301 não pode. Uma 301 protege desde um segunda petição em adelante. UM primera —antes de que se dispare um redirecionamento— sigue siendo HTTP. HSTS (para visitantes que vuelven) e preload (para quienes llegan por primera vez) são único que cierra essa ventana concreta.
3. Suba por trinquete, nunca de um salto.
max-age corto → largo. Cabecera simple → includeSubDomains (após auditar os subdominios) → preload (somente se está seguro). todos os peldaños são reversibles salvo o último. Não se salte peldaños por ahorrar tempo.
4. UM rigidez é um característica, e corta por os dos lados. O mesmo fallo em duro que detiene um atacante lhe detiene também um você quando se rompe um certificado. Assim que o requisito previo não é «¿quiere segurança?» —todo o mundo um quiere—, e sim «¿é seu operação de certificados o bastante robusta como para não fallar nunca?».
5. Preload é uma puerta de um somente sentido.
Um HSTS sem preload é possível relajar em um cliente um próxima vez que haga uma petição segura e reciba max-age=0: não mas rápido que eso, e somente para os clientes que se reconecten. Preload va um etapa mas allá: um eliminação é um envío aparte que tarda meses em llegar um os usuários, versión de navegador após versión de navegador. Métalo em o cajón de as «decisiones que não podemos deshacer com facilidade» e trátelo em consecuencia.
6. HSTS é ortogonal um os rankings, mas tampoco pode rescatar uma mala elecção de URL principal. Não é um fator de posicionamiento e não controla diretamente um elecção de URL nem um indexação. Júzguelo por segurança e confianza, não por seu beneficio em SEO: não há ninguno. Mas tampoco é uma red de segurança: um preferencia de Google por HTTPS sigue cediendo ante um certificado defectuoso, dependencias inseguras, uma redirecionamento HTTPS→HTTP ou uma etiqueta principal em HTTP, e HSTS não tem poder para anular eso.
HSTS — hoja de referencia rápida
As directivas de um cabecera
| Directiva | ¿Obligatoria? | O que faz |
|---|---|---|
max-age=<seconds> | Sí | Durante quanto tempo o navegador impone somente HTTPS. Se reinicia com cada resposta por HTTPS; eliminar um cabecera não um borra: há que servir max-age=0 por HTTPS para desactivarla em os clientes que se reconecten. |
includeSubDomains | Não | Aplica um política também um todos os subdominios. Audite antes todos os subdominios. |
preload | Não | Indicador para darse de alta em um lista preload do navegador (precisa as otras dos + hstspreload.org). Token presente, elegible, enviado e realmente listado são cuatro estados distintos. Casi irreversible uma vez listado. |
Valores habituales de um cabecera (as cifras de despliegue por fases que siguen são sugerencias operativas, não requisitos do protocolo; o mínimo estricto é o de um fila de preload)
| Valor | Significado |
|---|---|
max-age=300 | 5 minutos: uma primera teste segura. |
max-age=31536000 | 1 ano: estado de reposo estándar. |
max-age=31536000; includeSubDomains | 1 ano, todos os subdominios: sólido, sem preload. |
max-age=63072000; includeSubDomains; preload | 2 anos + preload: um forma que se envia (o mínimo obligatorio de hstspreload.org é max-age ≥ 31536000). |
max-age=0 (servido por HTTPS) | Borra uma política aprendida em os clientes que se reconecten. Não elimina uma inclusión em preload. |
Redirecionamentos: qual é qual e quem um ve
| Redirecionamento | Origen | Quem um ve | Trabajo |
|---|---|---|---|
| 301 | Seu servidor | Rastreadores e humanos | SEO: entender o alteração, transmitir link equity |
| Actualização interna (um menudo mostrada como um 307; o RFC 6797 não obliga ao código exacto) | O navegador (HSTS) | Somente humanos que vuelven — os rastreadores nunca um ven | Segurança/UX: saltarse o primer salto inseguro |
Fatos rápidos
- O preload exige
max-age≥ 31536000 +includeSubDomains+preload— verificado em relação aos requisitos atuais publicados em hstspreload.org. - um remoção do preload é um envio separado que leva meses para chegar aos usuários, navegador por navegador — trate como permanente.
- Em um host com HSTS, um certificado quebrado = falha grave, sem clique para continuar.
- O HSTS não é um sinal de ranqueamento e não substitui seus 301s.
Configurar um cabecera HSTS
Añada um cabecera somente em o bloque de servidor HTTPS, e empiece com um max-age corto até que haya confirmado que nada se rompe. Añada ; preload somente quando tenha intenção de enviar um solicitação um hstspreload.org: é casi 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;Verificar se HSTS está configurado (e leer seu valor)
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"]Inspeccionar e borrar uma entrada HSTS em Chrome (DevTools / net-internals)
Se está haciendo testes e um navegador ha «aprendido» uma política HSTS que precisa borrar:
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.)Úselo para confirmar que seu cabecera se está almacenando realmente e para restablecer um host de testes, não como arreglo em producção, onde um solução é servir activamente max-age=0 por HTTPS (eliminar um cabecera sem mas não borra uma política que um cliente já aprendió; somente surte efecto quando esse cliente se reconecta e recebe um resposta com max-age=0).
Errores de HSTS que muerden
1. Eliminar seus redirecionamentos permanentes porque «já se encarga HSTS». O clásico. UM redirecionamento de HSTS é uma actualização interna que somente ocurre em o navegador e que os rastreadores nunca ven. Se elimina essas redirecionamentos do lado do servidor, os mecanismos de busca pierden um sinal que consolida seu alteração. Mantenga ambas, sempre.
2. Activar includeSubDomains antes de auditar os subdominios.
UM forma mas habitual de dejar um subdominio fuera de servicio. Se algún subdominio —uma aplicação heredada, uma página de estado, um host de um proveedor, o próprio www— não está em HTTPS válido, um política se extiende para abajo e o rompe para todos os navegadores que vieron um cabecera.
3. Saltar diretamente um max-age de um ano (ou um preload) o primer dia.
Sem red de segurança. Empiece corto (max-age=300), confirme que nada se rompe e depois suba por trinquete. Um max-age largo configurado em um site mal configurado é uma caída autoinfligida que permanece em os navegadores durante um ano.
4. Fazer preload antes de que HTTPS seja realmente um teste de balas. Preload é casi irreversible: um eliminação tarda meses. UM própria frase de Google: não enable HSTS until você está certain seu site operation é robust enough — (traducção) «não active HSTS até que esté seguro de que um operação de seu site é o bastante robusta». Preload multiplica o que está em juego.
5. Tratar um certificado vencido como um problema menor. Em um site sem HSTS, um certificado caducado é um aviso que é possível esquivar. Em um host HSTS é uma caída total sem posibilidade de continuar com um clic. Se activa HSTS, um automatização de um renovação de certificados e as alertas de vencimiento dejan de ser algo deseable.
6. Poner um cabecera em um resposta HTTP. Os navegadores ignoran HSTS entregado por HTTP (por diseño: um atacante poderia inyectarlo ou eliminarlo). Deve enviarse em um resposta HTTPS para que cuente.
7. Olvidar o límite de profundidade de os certificados comodín.
Um comodín *.example.com não cubre foo.bar.example.com. Active includeSubDomains e qualquer subdominio mas profundo que dependa de esse certificado quedará bloqueado.
Manual de incidentes: um host HSTS queda bloqueado
- Confirme o fallo desde uma red limpia e em mas de um navegador. Registre os nomes de host afectados e o error exacto do certificado. Uma política HSTS recordada pode fazer que o síntoma difiera entre visitantes que vuelven e visitantes que llegan por primera vez.
- Restablezca primeiro um HTTPS válido. Se o certificado está caducado, não coincide ou lhe falta um intermedio, renuévelo ou sustitúyalo e despliegue um cadena completa. Um navegador com HSTS não ofrecerá uma vía segura de escape por HTTP.
- Delimite o alcance de um política. Inspeccione um cabecera
Strict-Transport-Securityem vivo e determine seincludeSubDomainsou preload extienden um caída mas allá do nome de host que um envió. - Inventaríe todos os subdominios afectados. para um host olvidado que somente funcione por HTTP, ponga delante um certificado válido e um endpoint HTTPS antes de decidir se conservar, migrar ou redirigir o servicio.
- Corrija um política somente depois de restablecer o acceso. Se o alcance não é seguro, reduzca ou elimine um cabecera em as respostas HTTPS. Eso não borra ao instante uma política já almacenada em caché por os navegadores, e um eliminação de preload é um proceso aparte e lento.
- Verifique um recuperação. Compruebe em o apex, em
wwwe em cada subdominio afectado que há uma cadena válida, o nome de host correto, uma redirecionamento HTTP→HTTPS de um somente salto e um cabecera HSTS prevista. Mantenga um monitorização de vencimiento de certificados sobre esse mesmo inventario.
Não desmonte um redirecionamento de HTTP nem diga um os usuários que se salten o aviso. O arreglo duradero é um endpoint HTTPS válido em todos os lugares um os que llegue um política HSTS activa.
Auditar uma política HSTS em vivo
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.Triagem de um bloqueo por HSTS
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. Kit de inspecção de HSTS
- HTTP Header Checker — inspeccione um cabecera
Strict-Transport-Securityem vivo e confirme que aparece em as respostas HTTPS. curl -I— compare um redirecionamento HTTP com um cabecera HTTPS sem depender do estado HSTS que recuerde um navegador.- DevTools do navegador — confirme as cabeceras de um resposta final e o error de certificado que ve um cliente real.
- Estado de preload de HSTS — consulte os requisitos de envío e se o dominio já está representado em o proceso de preload.
use ao menos dos perspectivas: um salida de línea de comandos mostra um resposta do servidor, enquanto que um navegador expone además um aplicação do lado do cliente e os fallos em duro por certificado. Prefiera OBTENHA sobre HEAD ao comparar ferramentas —alguns servidores e clientes representan ambos métodos de forma distinta— e anote o cliente, um ferramenta e um versión exactos detrás de cada lectura.
Testes para um despliegue de HSTS por fases
Teste 0: um matriz de estados (ejecútela antes de alterar de fase)
O estado de HSTS não é um único feito: são varios estados independientes que podem contradecirse. Sígalos por separado, por nome de host:
| Dimensión | O que verificar | Notas |
|---|---|---|
| Cabecera HTTPS em vivo, por clase de resposta | O valor de Strict-Transport-Security em respostas HTTPS reais (um portada, as páginas profundas e as respostas de API ou de recursos podem diferir) | use OBTENHA, não HEAD: alguns servidores e CDN varían um emisión de cabeceras segundo o método |
| Redirecionamento em o puerto 80 | Existe uma redirecionamento real do lado do servidor em o puerto 80, não somente um confianza em uma política aprendida por o cliente | É de o que dependem os clientes que llegan por primera vez e os que não aplican HSTS |
| Cobertura do certificado | Cadena válida para o apex, www e todos os subdominios dentro do alcance | Os certificados comodín não cubren uma segunda etiqueta DNS de profundidade |
| Subdominios padre frente um subdominios de entrada | Se um subdominio visitado diretamente ha recibido realmente seu própria resposta HSTS, porque pode não heredar um política aprendida do padre como includeSubDomains da um entender sobre o papel | Pruebe cada punto de entrada diretamente, não somente o apex |
| Estado aprendido, cliente novo frente um cliente recurrente | Comportamiento em um cliente que nunca ha visto seu cabecera frente um outro que sí | Borre o estado HSTS do navegador (ou use um perfil limpio) para simular um cliente «novo» |
| Estado real de preload | Se o dominio figura em uma compilação publicada de um navegador concreto, não somente se se ha enviado | Compruébelo em um própria página de estado ou o flag do navegador, não somente em o formulario de envío |
Registre o cliente, um ferramenta e um versión de cada observação: um representação de um redirecionamento interna e os detalles de aplicação de HSTS varían entre navegadores, rastreadores e ferramentas de línea de comandos, e uma lectura desactualizada de um cliente pode parecer uma contradicção que em realidade não existe.
Teste 1: teste canaria com um max-age corto
- objetivo: Demostrar que um cabecera se emite somente desde respostas HTTPS sanas antes de comprometer um os clientes um uma política larga.
- Método: Inspeccione plantillas e hosts representativos com o HTTP Header Checker e
curl -I; compare o valor desplegado com um configuração canaria aprobada. - resultado esperado: As respostas HTTPS llevan o
max-agecorto previsto; HTTP sigue devolviendo uma redirecionamento permanente do lado do servidor para HTTPS. - Disparador de fallo: Cabeceras ausentes ou duplicadas, uma duração larga inesperada, errores de certificado ou qualquer bucle de redirecionamento.
- Siguiente acção: Corrija um cabecera ou o endpoint HTTPS e mantenga o despliegue em um fase canaria.
Teste 2: preparação para includeSubDomains
- objetivo: Impedir que uma política do dominio padre deje bloqueado um nome de host olvidado.
- Método: Compruebe em todos os nomes de host DNS do inventario de subdominios mantenido que há uma resposta HTTPS válida, o nome de certificado correto e um cadena completa.
- resultado esperado: todos os subdominios dentro do alcance funcionam por HTTPS, incluidos os heredados, os de proveedores, os de desarrollo e os de níveis mas profundos.
- Disparador de fallo: Qualquer servicio somente por HTTP, certificado caducado ou que não coincida, ou nome de host ausente do inventario.
- Siguiente acção: Corrija ou reubique o host antes de añadir
includeSubDomains.
Teste 3: preparação para preload
- objetivo: Verificar que um política casi permanente satisface os requisitos de envío documentados.
- Método: Confirme um certificado válido, redirecionamentos HTTP→HTTPS em o mesmo host, HTTPS em todos os subdominios e uma cabecera em o apex com
max-agede ao menos31536000,includeSubDomainsepreload. - resultado esperado: todos os requisitos pasan e um organização acepta um lenta vía de eliminação.
- Disparador de fallo: Qualquer requisito técnico incumplido ou uma necesidade sem resolver de um subdominio somente por HTTP.
- Siguiente acção: Não envíe um solicitação; permanezca em um política reversible por fases.
Recursos que merecen seu tempo
Mis ponencias
- Better Safe Than Sorry com HTTPS — SMX East 2016 (SlideShare) — mi análisis um fondo sobre TLS, os fallos habituales de implementação de HTTPS e as trampas de migração que HSTS cierra e um vez pode amplificar. (Se aplica o descargo de responsabilidade habitual: é mi interpretação de estes sistemas, e as estadísticas de adopção que contiene são de 2016.)
Mis textos relacionados
- O Beginner’s Guide para técnico SEO — onde encajan HTTPS e HSTS em o panorama general.
De todo o sector
- Enable HTTPS em seu servers (web.dev) — um guía de HSTS do próprio Google: um cabecera, o SSL stripping e um advertencia sobre o fallo em duro.
- MDN —
Strict-Transport-Security— um referencia autorizada de um cabecera: sintaxis, directivas e comportamiento de actualização do esquema. - HSTS Preload Lista submission (hstspreload.org) — os requisitos de preload do proyecto Chromium e as advertencias sobre seu casi irreversibilidade.
- RFC 6797 — HTTP rigoroso Transport Segurança — um especificação original, para quando necesite um redacção exacta de uma directiva.
- HSTS — O que Isso É e Como use Isso (Kinsta) — uma guía práctica de implementação que cubre um redirecionamento interna um nível de navegador, um lista preload e os riesgos de quedar atrapado.
- SSL Labs servidor Teste (Qualys) — puntúe seu configuração TLS e confirme que HSTS se está sirviendo correctamente.
Estadísticas e dados contrastados que merece um pena citar
- Preload requiere
max-age≥ 31536000 (1 ano),includeSubDomainsepreload. O listón de envío exacto e innegociable para um lista integrada em os navegadores. Fuente - UM eliminação de preload tarda meses em llegar um os usuários. Do servicio de envío: “inclusion em o preload lista cannot easily ser undone… isso takes months para um altere para reach usuários com um Chrome update.” (traducção) «um inclusión em um lista preload não é possível deshacer com facilidade… um alteração tarda meses em llegar um os usuários com uma actualização de Chrome.» este é o dado que convierte preload em uma puerta de um somente sentido. Fuente
- Os hosts HSTS fallan em duro ante qualquer error de TLS. web.dev: os clientes que conocen seu site como host HSTS “são provável para hard-fail se seu site ever tem um error em seu TLS configuração.” (traducção) «é probable que fallen em duro se seu site llega um ter um error em seu configuração TLS.» Sem posibilidade de continuar com um clic: um certificado vencido se convierte em uma caída. Fuente
“affecting fewer than 1% of global queries”
(tradução) «affecting fewer than 1% de global queries» - HTTPS em sí mesmo é “um very lightweight sinal—affecting fewer than 1% de global queries.” (traducção) «uma sinal muito ligera que afecta um menos do 1 % de as consultas globales.» O encuadre do próprio Google, e HSTS é uma capa sobre HTTPS, não uma entrada de posicionamiento aparte, assim que seu peso em SEO é efectivamente cero. Ajuste as expectativas em consecuencia. Fuente
Ponga um teste seus conocimientos: HSTS
Cinco perguntas rápidas sobre HSTS. Elija uma resposta para cada uma e depois compruébelas.
Registro de alterações
Atualizado em 22 de ago. de 2026.
Resumo editorial e detalhes registrados da alteração.Detalhes da alteração
-
As notas detalhadas sobre as alterações estão disponíveis atualmente em inglês.
Não é possível fazer a comparação completa — nenhum instantâneo anterior foi arquivado para esta revisão.
Atualizado em 17 de jul. de 2026.
Resumo editorial e detalhes registrados da alteração.Detalhes da alteração
-
As notas detalhadas sobre as alterações estão disponíveis atualmente em inglês.
Não é possível fazer a comparação completa — nenhum instantâneo anterior foi arquivado para esta revisão.