Instaliranje VPN softvera na web hostu može preurediti servise, ali neočekivani certifikat ne dokazuje da su Apache datoteke prepisane. Nešto je taj certifikat predstavilo vašem pregledniku i prvi zadatak je da to imenujete. Dok se slušalac i virtualni host ne identificiraju, svaki popravak je nagađanje primijenjeno na pogrešan sloj. Cijela provjera ispod je samo za čitanje.

Ništa se ne restarta, deinstalira ni prepisuje dok prikupljate činjenice koje odlučuju slučaj.

Pročitajte certifikat koji je preglednik zaista dobio

Zabilježite ime hosta, razriješenu adresu za svaku porodicu, port i detalje certifikata na koje se preglednik žalio. Ime koje se razrješava i na A i na AAAA zapis može doći do dva različita prednja kraja, a samo jedan od njih može biti host na kojem imate shell pristup. Preglednik iza proxyja može opet krenuti trećim putem. Nagađanje koji je od njih proizveo upozorenje troši jedino zapažanje koje imate.

Zatim reproducirajte handshake sa mašine na istom putu, izričito navodeći adresu i šaljući namjeravano ime servera kako bi odgovor odražavao lokaciju, a ne zadani host.

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

Uporedite alternativna imena subjekta i otisak prsta sa certifikatom koji očekujete, a ne sa poznatim izdavaocem. Povezivanje na golu adresu bez imena servera može odabrati zadani certifikat, koji tada izgleda kao pogrešna datoteka kada je zapravo pogrešno pitanje.

Identificirajte proces vezan za taj port

Na hostu koji treba primiti vezu, izlistajte slušaoce i zabilježite bind adresu, adresnu porodicu i vlasnika procesa. Servis vezan za loopback adresu nije isto što i onaj vezan za svaki interfejs, a objavljivanje kontejnera može javni slušalac smjestiti sasvim drugdje.

sudo ss -ltnp 'sport = :443'
sudo ss -ltnp | grep -E ':(443|943)\b'

Ako TLS prekida load balancer ili proxy ispred, zaustavite se ovdje i pregledajte taj prednji kraj umjesto toga. Apache instanca iza njega možda nikada ne predstavi certifikat javnom pregledniku, pa uređivanje njezine konfiguracije ne mijenja ništa što preglednik vidi. Pogled na sockete i vanjski handshake moraju opisivati isti put, i to je ono što ovo poređenje utvrđuje.

Uskladite virtualni host prije datoteke

Kada je Apache prekidač, pitajte ga koji virtualni host pobjeđuje za tu adresu i ime. Kontrolna komanda ispisuje efektivni raspored, uključujući grupu pridruženu svakom socketu, deklarisana imena servera i host koji se tretira kao zadani. Uređivanje certifikatne datoteke bez tog odgovora vodi tome da se pogrešna lokacija poslužuje iz ispravne datoteke.

sudo apachectl -S

Apache SSL FAQ objašnjava kako server name indication bira certifikat. HTTP Host zaglavlje stiže nakon handshakea i ne može retroaktivno promijeniti ono što je već predstavljeno, pa neusklađeno ili odsutno ime pada na zadani host.

Imenovani virtualni host s greškom u ServerAlias proizvodi upravo ovaj simptom, kao i druga konfiguracijska datoteka koja prva učita host koji hvata sve. Oboje je vidljivo u tom ispisu rasporeda.

Provjerite popravak na svakom putu koji tvrdite

Nakon odobrene promjene ponovite provjeru specifičnu za ime hosta za svaku adresnu porodicu i završite uobičajenom validacijom preglednika umjesto zastavicom za zaobilaženje. Sačuvajte odvojen administrativni put prije nego što dirate zajedničke postavke slušaoca, jer greška tamo uklanja pristup koji biste koristili da ih poništite. Zatim zapišite koji je slušalac odgovorio, koji se virtualni host podudario i koji je certifikat poslužen prije i poslije.

Uklanjanje paketa može promijeniti raspored i ostaviti izvornu neusklađenost neobjašnjenom, zbog čega taj zapis nadživljava popravak.

Ono što želite je namjeravana lokacija na namjeravanoj ulaznoj točki. Drugačiji certifikat nakon što je nestao nepovezani servis nije taj rezultat, čak i kada preglednik prestane da se žali.

Povezani članci