Come risolvere un sito web contrassegnato come “Non sicuro” da Google

本文作者:Don jiang

Quando il tuo sito web viene improvvisamente contrassegnato da Google come “Non sicuro”, e gli utenti vedono pop-up di avviso nelle pagine di login o pagamento, oltre il 63% delle persone chiude subito la pagina — il che significa perdita di traffico e un calo drastico della fiducia nel marchio!

Questo articolo fornisce soluzioni pratiche e immediate che puoi implementare anche senza conoscenze tecniche — in meno di 2 ore puoi rendere di nuovo sicuro il tuo sito!

Come risolvere il problema del sito contrassegnato da Google come 'Non sicuro'

Perché il tuo sito viene indicato come “non sicuro”?

Dal 2018, Google richiede che tutte le pagine con input da parte degli utenti (come login, pagamenti o moduli) abbiano un certificato SSL installato — altrimenti verranno automaticamente segnalate come “Non sicure”.

E anche se hai già installato un certificato SSL, potresti comunque ricevere avvisi se è scaduto (i certificati gratuiti durano solo 3 mesi), non corrisponde al dominio (es. il certificato è per domain.com ma l’utente accede a www.domain.com), oppure se la pagina contiene immagini o script da link HTTP, che causano un errore HTTPS.

HTTP è come trasmettere tutto “in chiaro”

Un sito e-commerce di una catena fisica non aveva attivato HTTPS, e un hacker ha intercettato i dati degli utenti che si registravano. Il team tecnico ha scoperto che bastava usare una WiFi pubblica e lo strumento Wireshark per rubare più di 200 password in 5 minuti.

Problemi principali:

  • Con HTTP, tutti i dati (password, info di pagamento) sono inviati senza crittografia
  • I siti HTTP hanno una probabilità 3,6 volte maggiore di essere manipolati rispetto a quelli HTTPS (fonte: report sicurezza Sucuri 2024)
  • Google penalizza i siti HTTP riducendo il posizionamento SEO del 15%-20% (dati test SEMrush)

Dettagli “critici” del certificato SSL

Durante una campagna promozionale nel 2023, un sito di moda ha perso oltre 370.000 yuan in ordini perché il certificato SSL era scaduto e la pagina di pagamento è stata bloccata dal browser.

  1. Certificato scaduto: i certificati gratuiti (es. Let’s Encrypt) scadono dopo 90 giorni e vanno rinnovati
  2. Dominio non corrispondente: se il certificato è per domain.com ma l’utente visita www.domain.com, viene mostrato un avviso
  3. Certificato intermedio mancante: può causare errori su Android come “catena di certificati incompleta”

Situazione attuale: il 43% dei siti HTTPS ha ancora errori di configurazione del certificato (dati SSL Labs 2024)

Contenuto misto: “un solo link HTTP rovina tutto”

Un amministratore WordPress ha detto: “Ho installato l’SSL ma mi mostra ancora ‘Non sicuro’!” Alla fine ha scoperto che il problema era un’immagine con link HTTP nel tema.

Cause comuni:

  • Vecchi articoli con immagini linkate tramite HTTP (es. http://image.com/1.jpg)
  • Plugin di terze parti che usano API HTTP (es. chat live, pubblicità)
  • Link HTTP inseriti nel database

Strumenti per controllare:

  • Apri Chrome, premi F12 → guarda nel pannello Console per eventuali errori
  • Usa SSL Checker per verificare il certificato

Minaccia nascosta: hijacking da parte di ISP locali

In alcune regioni, i provider internet (ISP) intercettano il traffico HTTP e inseriscono pubblicità o reindirizzamenti. Un’azienda dello Yunnan ha scoperto pop-up di gioco d’azzardo sulla propria homepage — in realtà era l’ISP che modificava il traffico.

In questi casi, il browser mostra un avviso di sicurezza, e gli utenti pensano che il problema sia del sito, portando a un aumento del 280% delle lamentele (fonte: studio站长之家)

3 modi per ottenere velocemente un certificato SSL gratuito

“Installare un certificato SSL è complicato? Serve un tecnico?” — Questa convinzione scoraggia oltre il 90% dei piccoli webmaster dal risolvere il problema del “Non sicuro”.

In realtà, ci sono oltre 430 milioni di siti che usano SSL gratuiti (dati BuiltWith), inclusi sottodomini di Amazon, WordPress e altri grandi nomi.

Un certificato gratuito è sicuro quanto uno a pagamento — l’unica differenza è il metodo di verifica.

1. Installazione con un clic dal pannello di hosting (ideale per principianti)

Quando usarlo: se utilizzi hosting condiviso o server cloud (come Alibaba Cloud, Tencent Cloud, SiteGround)
Passaggi operativi

  1. Accedi al pannello di amministrazione del tuo hosting e cerca la sezione “SSL/TLS” o “Sicurezza”
  2. Seleziona “Certificato gratuito” e scegli i domini da proteggere (è possibile farlo anche in blocco)
  3. Clicca su “Distribuisci” e attendi 3–5 minuti per l’attivazione automatica

Tasso di successo:98%(La maggior parte dei provider di hosting cinesi ha già il sistema configurato correttamente)

Vantaggi:Non sono richieste competenze tecniche, rinnovo automatico, bassa probabilità di fallimento

Punti da considerare

  • Alcuni provider limitano il numero di certificati gratuiti (ad esempio, West.cn ne offre solo 1)
  • Assicurati che il dominio punti all’indirizzo IP del server attuale

2. Let’s Encrypt + Certbot (preferito dagli sviluppatori)

Caso d’uso:Se hai un server dedicato (come Nginx/Apache) o gestisci più domini

Esperienza reale:Un blog con più di 100.000 utenti giornalieri ha cifrato automaticamente 100 sottodomini in soli 3 minuti

Procedura

bash
# Installa Certbot (esempio per Ubuntu + Nginx)
sudo apt-get update
sudo apt-get install certbot python3-certbot-nginx

# Richiedi e configura automaticamente il certificato (sostituisci yourdomain.com)
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

# Abilita il rinnovo automatico (il certificato è valido per 90 giorni)
sudo certbot renew --dry-run

Tasso di successo:92%(Dipende dalla configurazione del server)

Soluzioni per gli errori comuni

  • Failed to connect to host for DVSNI challenge → Verifica se le porte 80/443 sono aperte nel firewall
  • The server experienced an internal error → Il DNS del dominio non è ancora stato aggiornato, attendi che si propaghi

3. HTTPS integrato nei servizi CDN (accelerazione + sicurezza)

Piattaforme supportate:Cloudflare, Baidu Cloud Acceleration, Tencent Cloud CDN

Guida operativa (esempio con Cloudflare)

  1. Crea un account e aggiungi il tuo dominio
  2. Vai alla sezione “SSL/TLS” e scegli la modalità “Flexible” (abbonamento HTTPS per l’intero sito)
  3. Attiva “Always Use HTTPS” e “Automatic HTTPS Rewrites”

Tempo di attivazione:Immediato (disponibile sui nodi globali)

Vantaggi principali

  • Non è necessario installare certificati sul server di origine
  • Funziona anche con server HTTP più vecchi
  • La versione gratuita supporta i certificati wildcard (*.dominio.com)

Limiti e soluzioni

LimiteImpattoSoluzione
Durata breveLet’s Encrypt è valido solo per 90 giorniConfigura un rinnovo automatico usando crontab
Verifica solo la proprietà del dominioNon appare il nome dell’azienda nel browserI siti aziendali possono passare a certificati OV (da 300¥/anno)
Limitazioni sui dominiAlcuni hosting supportano solo un dominioUtilizza certificati wildcard (*.dominio.com)

Verifica dei “contenuti misti”

“Perché il mio sito risulta ancora non sicuro dopo aver installato il certificato SSL?” — Questa è una domanda che il 78% degli amministratori di siti web si pongono dopo aver attivato HTTPS (Fonte: SSL Labs).

Il motivo? Contenuti misti: il tuo sito è protetto da HTTPS, ma alcune risorse (come immagini o script) vengono caricate tramite HTTP, il che può compromettere la sicurezza.

1. Impatti negativi dei contenuti misti

  • Perdita di fiducia: i browser mostrano un’icona di avviso (su Chrome 94+ appare rossa)
  • Funzionamento errato: alcuni browser bloccano le risorse HTTP (ad esempio immagini o script che non vengono caricati)
  • Penalizzazioni SEO: Google considera la pagina “parzialmente sicura” e la sua posizione nei risultati di ricerca può scendere tra l’11% e il 15% (dati di Ahrefs)

2. Come identificare il problema in 3 minuti

Metodo 1: Usa gli strumenti per sviluppatori di Chrome

  1. Apri il sito web e premi F12 per accedere agli strumenti per sviluppatori
  2. Passa al pannello Console e guarda gli errori in rosso
  3. Clicca sul link nel messaggio di errore per accedere direttamente al pannello Sources e localizzare il codice con il problema

Metodo 2: Strumenti di scansione di terze parti

  • Why No Padlock: Inserisci l’URL e genera in 5 secondi un elenco delle risorse inquinate
  • Jitbit SSL Check: Scansione approfondita dei link incorporati in CSS/JS

Metodo 3: Ricerca globale nel database

Per sistemi di creazione di siti come WordPress/Shopify, è necessario verificare i contenuti storici nel database:

sql
-- Trova i link HTTP (sostituisci your_db_prefix con il prefisso effettivo della tabella)
SELECT * FROM your_db_prefix_posts
WHERE post_content LIKE '%http://%' AND post_status='publish';  

3. Fonti comuni di inquinamento e soluzioni

Tipo di problemaPercentualeScenario tipicoSoluzione permanente
Link esterni alle immagini52%Immagini caricate in articoli prima del 2018Scarica l’immagine → Carica sul CDN del sito
Codice di terze parti23%Finestra di chat, script di reti pubblicitarieContatta il fornitore per ottenere la versione HTTPS del codice
Tema/Plugin17%Biblioteche di font di temi vecchi, richieste AJAXAggiorna il plugin o sostituisci manualmente http:// con //
Hardcoding nel database8%Link video inseriti manualmente nelle pagine dei prodottiSostituzione in blocco dei dati SQL (più sicuro con un plugin)

4. Strategia di difesa permanente contro i contenuti misti

  • Link relativi al protocollo: Cambia http://example.com/image.jpg in //example.com/image.jpg
  • Politica di sicurezza dei contenuti (CSP): Aggiungi nel file di configurazione Nginx/Apache:
nginx
add_header Content-Security-Policy "upgrade-insecure-requests";  

Forzare il reindirizzamento HTTPS su tutto il sito (esempio di codice)

“Perché, anche dopo aver installato il certificato, gli utenti riescono ancora ad accedere alla versione HTTP?” — Questo è il difetto più critico dopo la correzione del contenuto misto.

Un negozio di e-commerce per bambini ha visto una riduzione del 30% del suo ranking nei motori di ricerca perché il 40% degli utenti mobili continuava ad accedere alle pagine HTTP, causando una duplicazione dei contenuti da parte di Google.

La logica principale del reindirizzamento forzato è: intercettare tutte le richieste HTTP e reindirizzarle permanentemente su HTTPS con codice di stato 301.

1. Template di codice generico (per Apache/Nginx/IIS)

Server Apache (.htaccess)

apache
RewriteEngine On  
# Forza il reindirizzamento al dominio principale  
RewriteCond %{HTTPS} !=on  
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]  
# Corregge l’uso misto di www e non-www  
RewriteCond %{HTTP_HOST} !^www\. [NC]  
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]  

Scenari di utilizzo: hosting virtuale, WordPress, Joomla e altri siti PHP
Consigli per evitare problemi:

  • Assicurati che il modulo mod_rewrite sia attivo sul server
  • Il file deve essere caricato nella directory principale del sito
  • Se il reindirizzamento non funziona, verifica la presenza di conflitti tra più file .htaccess

Server Nginx (sezione di configurazione in nginx.conf)

nginx
server {  
    listen 80;  
    server_name example.com www.example.com;  
    # Reindirizzamento 301 dell'intero sito 
    return 301 https://$server_name$request_uri;  
    # Blocca i metodi HTTP sensibili 
    if ($request_method !~ ^(GET|HEAD|POST)$ ) {  
        return 444;  
    }  
}  

Trucchi per il debug:

  • Dopo le modifiche, esegui nginx -t per testare la configurazione
  • Ricarica la configurazione con: nginx -s reload
  • Blocca i metodi HTTP non necessari per evitare la perdita di dati

Server Windows IIS (regole nel file web.config)

xml
<configuration>  
  <system.webServer>  
    <rewrite>  
      <rules>  
        <rule name="Forza HTTPS" stopProcessing="true">  
<match url="(.*)" />  
<conditions>  
  <add input="{HTTPS}" pattern="^OFF$" />  
</conditions>  
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />  
</rule>  
</rules>  
</rewrite>  
</system.webServer>  
</configuration>  

Errori comuni

  • Il modulo “URL Rewrite” non è installato in IIS → Link per il download ufficiale
  • Errore di codifica dei percorsi cinesi → Aggiungere encode="false" nella regola

2. Soluzioni specifiche per i CMS

Utenti WordPress

  1. Accedi al pannello → Impostazioni → Generali
  2. Cambia Indirizzo WordPress e Indirizzo sito da http:// a https://
  3. Installa il plugin Really Simple SSL → Risolvi i contenuti misti nel database con un clic

Framework come Shopify/Laravel
Forza HTTPS nel file delle variabili d’ambiente (.env):

bash
APP_URL=https://www.example.com  
FORCE_SSL=true  
SESSION_SECURE_COOKIE=true  

3. Gestione speciale per dispositivi mobili (AMP/WeChat Browser)

  • Reindirizzamento della pagina AMP: Aggiungi questo codice nell’HTML AMP:
  • Problema di cache su WeChat: Aggiungi un parametro casuale alla fine dell’URL, come ?v=2024, per forzare l’aggiornamento della versione HTTPS

4. Verifica se il reindirizzamento funziona

Test nel browser:

  • Accedi a http://example.com → L’indirizzo dovrebbe cambiare automaticamente in https://
  • Controlla se il simbolo del lucchetto diventa verde dopo il reindirizzamento

Verifica da riga di comando:

bash
curl -I http://example.com
# La risposta corretta dovrebbe includere:  
# HTTP/1.1 301 Moved Permanently  
# Location: https://example.com  

Strumenti online per il controllo:

  1. Redirect Checker
  2. Varvy SSL Test

Avvisi di errore:

Configurazione errata → loop di reindirizzamento (ERR_TOO_MANY_REDIRECTS)
Cause comuni:
1. CDN che attiva il reindirizzamento HTTPS (conflitto con le regole del server)
2. Load balancer che non passa correttamente l'header del protocollo
Soluzione:
Aggiungi questa riga nella configurazione di Nginx:
proxy_set_header X-Forwarded-Proto $scheme;  

Principi di reindirizzamento SEO-friendly:

  • Usa il 301 Redirect (permanente) su tutto il sito, in modo che il ranking venga trasferito al 100%
  • Evita i reindirizzamenti a catena (ad esempio, http→http://www→https), consentito al massimo un solo reindirizzamento
  • Invia la sitemap della versione HTTPS su Google Search Console

Dal 2018, Google ha iniziato a considerare HTTPS come un fattore di ranking. I siti non criptati perdono mediamente dal 12% al 15% di traffico ogni anno, e questa perdita sta crescendo man mano che cresce la consapevolezza degli utenti sulla sicurezza.