este site não é seguro

Este site não é seguro: há duas versões deste aviso.

Uma é o site inteiro em HTTP e resolve-se com um certificado. A outra é um cadeado partido num site que já tem HTTPS — e essa costuma ser uma imagem, escondida numa página que ninguém visita.

// de quem é o problema É do site, e é uma correcção de quem o gere. Este aviso não depende da rede nem do computador de quem visita. Se o browser diz que o site não é seguro, é porque alguma coisa está a ser servida sem cifra — e isso é uma característica do site, igual para toda a gente.

Os browsers modernos partem do princípio de que HTTPS é o normal e HTTP é a excepção que precisa de aviso. Um site inteiramente em HTTP é marcado como "Não seguro" na barra de endereço, sem ecrã vermelho, mas com um rótulo permanente que qualquer visitante vê.

A segunda versão é mais subtil e apanha sites que já fizeram tudo bem: o HTML vem por HTTPS, mas uma imagem, um script ou uma folha de estilo estão a ser pedidos por HTTP. Chama-se conteúdo misto. O browser ou bloqueia esses ficheiros — e a página aparece partida — ou mantém o aviso, conforme o tipo de recurso.

A distinção interessa porque as correcções são opostas. No primeiro caso falta um certificado; no segundo o certificado está impecável e o que falta é corrigir endereços dentro do conteúdo. Tentar resolver o segundo emitindo certificados é trabalho perdido.

// causas prováveis

Por onde é que isto costuma vir.

Por ordem de frequência. A primeira explica mais casos do que todas as outras juntas.

  • O site não tem certificado nenhum

    Sites antigos que nunca migraram, ou subdomínios que ficaram esquecidos numa migração. Hoje não há razão para isto: o SSL gratuito está incluído em praticamente todos os alojamentos.

  • Imagens com endereço absoluto em HTTP

    A causa número um do conteúdo misto em WordPress. Conteúdo escrito antes da migração para HTTPS ficou com `http://` colado nos endereços das imagens, e continua lá anos depois.

  • Scripts ou folhas de estilo de terceiros em HTTP

    Um widget antigo, uma fonte, um contador de visitas de 2014. São os piores porque o browser bloqueia-os por completo — e o resultado não é um aviso, é uma página que aparece desalinhada.

  • O site não redirecciona HTTP para HTTPS

    O certificado existe e funciona, mas quem escreve o domínio sem `https://` entra pela porta insegura e vê o aviso. Falta uma regra de redireccionamento, não falta um certificado.

  • Endereços do site guardados em HTTP na base de dados

    No WordPress, as opções `siteurl` e `home` em `Definições > Geral`. Se ficaram em `http://`, metade das ligações geradas pelo próprio sistema saem inseguras.

// o que fazer

Passo a passo, e o primeiro é confirmar.

Antes de mexer no servidor, vale a pena saber o que ele está mesmo a apresentar. É o que a ferramenta aqui em baixo responde.

  1. 01

    Vê se o site abre em https:// à mão

    Escreve o endereço com `https://` à frente. Se abrir com cadeado, há certificado e o teu problema é redireccionamento ou conteúdo misto. Se der erro, não há certificado — e o caminho é a página de renovação.

  2. 02

    Confirma o certificado de fora

    Antes de procurar conteúdo misto, elimina a hipótese mais simples. O verificador diz-te se o certificado existe, se está válido e se cobre o domínio que estás a testar.

  3. 03

    Abre a consola do browser e procura "mixed content"

    É onde o problema se vê à primeira. O browser lista cada recurso inseguro com o endereço completo — e essa lista é a tua lista de trabalho, sem adivinhação nenhuma.

  4. 04

    Corrige os endereços na base de dados

    Uma substituição de `http://exemplo.pt` por `https://exemplo.pt` em toda a base de dados. Usa uma ferramenta que trate de dados serializados — uma substituição em SQL puro parte campos serializados do WordPress e o estrago é pior do que o problema.

  5. 05

    Força o redireccionamento de HTTP para HTTPS

    No servidor, e não por plugin, se puderes. Deixa `/.well-known/acme-challenge/` de fora da regra — é o caminho por onde o certificado se renova, e fechá-lo é como se prepara a próxima avaria.

  6. 06

    Verifica página a página, não só a inicial

    O conteúdo misto esconde-se em páginas antigas. A inicial costuma estar limpa porque foi refeita; a notícia de 2019 com quatro fotografias é que tem o problema.

Cola o domínio e abrimos a ligação TLS a partir de um servidor em Portugal: validade, cadeia, nomes cobertos e quem emitiu. Sem conta, sem custo, e não guardamos o que verificares.

verificar_certificado servidor: PT

// que não volte

Como não voltar a esta página daqui a 90 dias.

  • Usa endereços relativos no conteúdo

    Uma imagem inserida com caminho relativo nunca fica presa a um protocolo. Metade dos problemas de conteúdo misto nascem de endereços absolutos escritos à mão.

  • Verifica o site depois de migrar para HTTPS

    A migração é sempre declarada concluída quando a página inicial abre com cadeado. As outras trezentas páginas raramente são vistas, e é lá que o problema fica.

  • Não deixes subdomínios esquecidos

    O `staging.`, o `antigo.`, o `loja.` de um projecto que morreu. Continuam públicos, continuam em HTTP, e continuam a ser encontrados.

  • Vigia o certificado depois de o pôr a funcionar

    Resolver o aviso hoje não impede que ele volte daqui a noventa dias, quando a renovação falhar. É o mesmo trabalho outra vez, com menos paciência.

// limites

Onde é que esta página encalha.

  • Não rastreamos o site à procura de conteúdo misto. A nossa leitura é do certificado que o servidor apresenta — para encontrar recursos inseguros, a consola do browser é a ferramenta certa e é gratuita.
  • Não vemos o que está dentro das páginas. Uma verificação de estado responde sobre o servidor, não sobre o HTML que ele devolve.
  • Se o aviso vem de um antivírus ou de uma extensão e não do browser, isto não se aplica. Nesse caso o texto é de outro produto e a lógica dele é dele.
  • Não tratamos de sites marcados como perigosos pelo Navegação Segura da Google. Esse é um aviso completamente diferente, com ecrã vermelho, e significa suspeita de malware — não é um problema de certificado.

// perguntas

O que nos perguntam a seguir.

Tenho certificado e o Chrome continua a dizer que o site não é seguro. Porquê?

Quase de certeza conteúdo misto: o HTML vem por HTTPS e alguma coisa dentro dele vem por HTTP. A consola do browser diz-te exactamente o quê e onde, e a correcção é nos endereços e não no certificado.

O aviso "não seguro" prejudica as visitas?

Prejudica, sobretudo em formulários e pagamentos, onde o Chrome escreve o aviso ao lado do campo. É difícil pôr um número honesto nisto, mas a direcção não é discutível — e como resolver é gratuito, a discussão não chega a fazer-se.

Basta instalar um plugin de HTTPS?

Um plugin reescreve os endereços na saída e resolve o sintoma imediatamente, o que é útil quando é preciso resolver hoje. Mas os endereços continuam errados na base de dados, e no dia em que o plugin sair ou falhar, o problema volta inteiro. A correcção a sério é na base de dados.

Vigiar aquele domínio, em vez de te lembrares dele.

Depois de arrumado, o aviso volta sozinho no dia em que o certificado expirar — e a maior parte das vezes é isso que acontece, dois ou três meses depois de alguém ter tido este mesmo trabalho. A De Olho vai vigiar a validade e avisar-te com trinta dias de antecedência, para o trabalho não se repetir com o cliente ao telefone. Enquanto não abre, a leitura manual está aqui.

A De Olho abre em 2026 e ainda não dá para usar. Quem estiver na lista de espera fica a saber primeiro e mantém o preço de lançamento enquanto a subscrição durar.