Il sito mostra il certificato sbagliato? Trovate il listener
Un sito presenta un certificato inatteso e il file ovvio viene riscritto. Identificate il listener e l'host virtuale che ha risposto per primo.
Installare software VPN su un host web può riorganizzare i servizi, ma un certificato inatteso non prova che i file di Apache siano stati riscritti. Qualcosa ha presentato quel certificato al vostro browser, e il primo compito è dargli un nome. Finché il listener e l'host virtuale non sono identificati, ogni riparazione è una supposizione applicata al livello sbagliato. L'intera verifica qui sotto è di sola lettura.
Nulla viene riavviato, disinstallato o sovrascritto mentre raccogliete i fatti che decidono il caso.
Leggete il certificato che il browser ha ricevuto davvero
Annotate il nome host, l'indirizzo risolto per ciascuna famiglia, la porta e i dettagli del certificato di cui il browser si è lamentato. Un nome che si risolve sia in un record A sia in uno AAAA può raggiungere due front end diversi, e solo uno di essi può essere l'host su cui avete accesso alla shell. Un browser dietro un proxy può prendere di nuovo una terza strada. Indovinare quale dei due ha prodotto l'avviso spreca l'unica osservazione che avete.
Poi riproducete l'handshake da una macchina sullo stesso percorso, nominando esplicitamente l'indirizzo e inviando il nome server previsto perché la risposta rifletta il sito e non l'host predefinito.
openssl s_client -connect 198.51.100.37:443 -servername www.example.net </dev/null 2>/dev/null |
openssl x509 -noout -subject -issuer -fingerprint -sha256 -ext subjectAltName
Confrontate i nomi alternativi del soggetto e l'impronta con il certificato che vi aspettate, non con un emittente familiare. Connettervi a un indirizzo nudo senza il nome server può selezionare un certificato predefinito, che poi sembra il file sbagliato quando in realtà è la domanda sbagliata.
Identificate il processo associato a quella porta
Sull'host che dovrebbe ricevere la connessione, elencate i listener e annotate l'indirizzo di bind, la famiglia di indirizzi e il proprietario del processo. Un servizio associato all'indirizzo di loopback non è lo stesso di uno associato a tutte le interfacce, e una pubblicazione di container può collocare il listener pubblico altrove del tutto.
sudo ss -ltnp 'sport = :443'
sudo ss -ltnp | grep -E ':(443|943)\b'
Se TLS è terminato da un bilanciatore di carico o da un proxy davanti, fermatevi qui e ispezionate invece quel front end. L'istanza Apache dietro di esso potrebbe non presentare mai un certificato a un browser pubblico, quindi modificare la sua configurazione non cambia nulla di ciò che il browser vede. La vista dei socket e l'handshake esterno devono descrivere lo stesso percorso, ed è ciò che stabilisce questo confronto.
Abbinate l'host virtuale prima del file
Quando Apache è il terminatore, chiedetegli quale host virtuale vince per quell'indirizzo e quel nome. Il comando di controllo stampa la disposizione effettiva, incluso il gruppo associato a ciascun socket, i nomi server dichiarati e l'host trattato come predefinito. Modificare un file di certificato senza quella risposta è il modo in cui il sito sbagliato finisce per essere servito da un file corretto.
sudo apachectl -S
Le domande frequenti su SSL di Apache spiegano come l'indicazione del nome server selezioni un certificato. L'intestazione Host di HTTP arriva dopo l'handshake e non può cambiare retroattivamente ciò che è già stato presentato, quindi un nome non corrispondente o assente ricade sull'host predefinito.
Un host virtuale con nome e un errore di battitura in ServerAlias produce esattamente questo sintomo, e lo stesso fa un secondo file di configurazione che carica prima un host che cattura tutto. Entrambi sono visibili in quell'elenco della disposizione.
Verificate la correzione su ogni percorso che affermate
Dopo una modifica approvata, ripetete la verifica specifica del nome host per ciascuna famiglia di indirizzi e concludete con la normale validazione del browser invece che con un flag di aggiramento. Conservate un percorso amministrativo separato prima di toccare impostazioni condivise del listener, perché un errore lì rimuove l'accesso che usereste per annullarlo. Poi annotate quale listener ha risposto, quale host virtuale corrispondeva e quale certificato è stato servito prima e dopo.
Rimuovere un pacchetto può cambiare la disposizione e lasciare inspiegata la discrepanza originale, ed è per questo che quel registro sopravvive alla riparazione.
Ciò che volete è il sito previsto al punto di ingresso previsto. Un certificato diverso dopo che un servizio non correlato è scomparso non è quel risultato, anche quando il browser smette di lamentarsi.