Come appare il messaggio
This site can’t provide a secure connection
example.com uses an unsupported protocol.
ERR_SSL_VERSION_OR_CIPHER_MISMATCHCause frequenti
- Il server ammette solo protocolli vecchi come SSLv3, TLS 1.0 o 1.1, che i browser attuali rifiutano.
ssl_protocolsossl_cipherssono troppo stretti o contengono un errore di battitura.- Il virtual host che risponde alla richiesta non ha un certificato o ne ha solo uno che il client non supporta.
- Un client molto vecchio, o un OpenSSL vecchio sul server, non sa fare TLS 1.2.
- Si richiede HTTPS su una porta in cui il server parla solo http in chiaro.
Verifica
- Quale protocollo e quale cipher offre davvero il server?
- TLS 1.2 funziona?
openssl s_client -connect example.com:443 -tls1_2 </dev/null 2>&1 | head -n 12 - Cosa è impostato in nginx?
nginx -T 2>/dev/null | grep -nE 'ssl_protocols|ssl_ciphers|ssl_certificate '
Soluzione
- Consenti protocolli moderni:
ssl_protocols TLSv1.2 TLSv1.3;. - Usa un elenco di cipher attuale, ad esempio il profilo Mozilla «intermediate», oppure ometti
ssl_cipherse usa i valori predefiniti. - Assicurati che risponda il blocco server giusto: serve
listen 443 ssl;e unssl_certificatecon la relativa chiave. - Sui server vecchi aggiorna OpenSSL e nginx.
- Ricarica e prova:
nginx -t && systemctl reload nginx.
Domande frequenti
Devo riattivare TLS 1.0 per un client vecchio?
No. TLS 1.0 e 1.1 sono obsoleti e non sicuri. Aggiorna il client, oppure metti un proxy moderno davanti al vecchio sistema.
Funziona in un browser e in un altro no. Perché?
I browser supportano insiemi diversi di protocolli e cipher. Una configurazione molto stretta può andare bene solo per alcuni.