Mistet klientcertifikatet? Tilbagekald på serienummer, ikke på navn
En manglende certifikatfil er ikke en manglende post. Tilbagekaldelse virker på det serienummer, som CA'en signerede, så find objektet, før du udsteder en erstatning.
Din klients certifikatfil er væk, og refleksen er at tilbagekalde navnet og udstede et nyt. Den refleks lader det oprindelige certifikat være gyldigt, fordi tilbagekaldelse virker på et serienummer og ikke på en etiket. CA'en har næsten sikkert stadig en kopi af det, den udstedte, og at finde den kopi er hele opgaven.
At miste en fil er ikke at miste CA'ens post
En Easy-RSA-PKI gemmer de offentlige certifikater, den har udstedt, og nyere versioner arkiverer også kopier efter serienummer i PKI'ens certs_by_serial-mappe. Den private nøgle er ikke nødvendig for at tilbagekalde noget. Det afgørende er det præcise certifikat, som CA'en signerede, og det har CA'en allerede.
Arbejd på en sikkerhedskopi af den rigtige PKI sammen med administratoren, der ejer den. Tilbagekaldelse er en revisionssporbar handling og ikke en reparation af en produktionsdatabase ved midnat.
En kopi af klientens indlejrede offentlige certifikat fungerer også, hvis udrulningen har gemt en.
Læs udstederen og serienummeret først
Undersøg den gendannede PEM, og skriv udstederen, serienummeret, subjektet og gyldighedsperioden ned. Serienummeret er unikt inden for én udsteders område, ikke på tværs af alle CA'er i din infrastruktur, så udstederen er en del af identiteten. Hvis flere certifikater deler et subjekt, er det serienumrene, der skelner dem.
Sammenhold værdierne med CA'ens poster og med den enhed eller person, som du mener har certifikatet.
Et almindeligt navn kan genbruges, og det sker ofte. Beslut ikke, hvilke certifikater der skal trækkes tilbage, før serienumrene er skrevet ned.
Hvorfor tilbagekaldelse af det nye certifikat ikke hjælper
Udstedelse af en erstatning med samme almindelige navn skaber et andet certifikat med et andet serienummer. Tilbagekaldelse af erstatningen trækker det nye tilbage og lader det oprindelige være gyldigt, indtil det udløber. Fra CA'ens synspunkt er der tale om to uafhængige objekter, og en CRL opregner serienumre og ikke navne. CA'ens indeks holder netop derfor én række pr. udstedt certifikat.
Den samme forvirring skaber den omvendte fejl: at slette klientens fil og antage, at CA'en glemte det. Sletning på klienten er ikke en tilbagekaldelseshændelse, og certifikatet bliver ved med at virke for alle, der har en kopi.
Begge fejl kommer af at behandle navnet som identiteten.
Tilbagekald det certifikat, som serienummeret udpeger
Identificér objektet, før du rører CA'en: openssl x509 -in recovered-client.pem -noout -issuer -serial -subject -dates udskriver de fire værdier i én kørsel, og serienummeret er det, du matcher mod CA'ens arkiv. Easy-RSA opbevarer arkivet under pki/certs_by_serial med én fil pr. serienummer. Tilbagekaldelseskommandoen tager et almindeligt navn og ikke et serienummer, så kopiér den arkiverede fil til pki/issued/<common-name>.crt, og lad navnet pege på det objekt, du har identificeret. Kør easyrsa revoke <common-name> fra PKI-mappen, og kontrollér derefter, at den tilsvarende række i index.txt er skiftet til R. Serienummeret er måden, du vælger objektet på, ikke et argument, kommandoen accepterer.
openssl x509 -in recovered-client.pem -noout -issuer -serial -subject -dates
cp pki/certs_by_serial/A1B2C3D4.pem pki/issued/client-01.crt
./easyrsa revoke client-01
grep -n client-01 pki/index.txt
./easyrsa gen-crl
Hvis index.txt ikke viser R, skal du stoppe og læse fejlen, før du genererer en CRL, fordi en CRL bygget på en post, der stadig er gyldig, ikke trækker noget tilbage. Først når rækken skifter, kører du easyrsa gen-crl og går videre til at distribuere filen.
Udgiv CRL'en, hvor den faktisk håndhæves
Generér en ny CRL via PKI'ens understøttede arbejdsgang, og udgiv den derefter til hver verifier, der håndhæver denne udsteders tilbagekaldelser.
En opdateret fil, der ligger på CA'en, ændrer intet, fordi VPN afslutter beslutningen i sin egen verifier. Kontrollér CRL'ens udsteder, dens gyldighedsperiode og de tilbagekaldte serienumre, og bekræft, at tjenesten genindlæser filen i stedet for at cache den forrige. Ejerskab og sti betyder lige så meget som indhold: en CRL, som daemonen ikke kan læse, kan ikke skelnes fra ingen CRL. OpenVPN's crl-verify-indstilling angiver den fil, daemonen læser, så kontrollér den sti og filens ejerskab i serverkonfigurationen.
Bekræft med et rigtigt forbindelsesforsøg, ikke med filens tidsstempel.
Vid, hvornår en CRL er det forkerte værktøj
Hvis udstederens private nøgle ikke længere er betroet, kan tilbagekaldelse af kendte serienumre ikke forhindre en uautoriseret indehaver i at signere nye certifikater. Det er en overgang i udstederens tillid, altså en ny CA og en distributionsplan, ikke endnu en post i CRL'en. At en tidligere administrator har haft adgang er ikke i sig selv bevis for, at nøglen er misbrugt, så skaf fakta, før du genopbygger tilliden.
Manuel redigering af udstedelsesdatabasen for at vende et statusbogstav er ikke en erstatning for en signeret tilbagekaldelse og efterlader CRL'en uoverensstemmende med posterne.
Hold serienummeret, CRL'en og distributionstrinnet i ét notat, og næste revision bliver en læseøvelse. Easy-RSA-projektet dokumenterer de understøttede kommandoer til den version, du har installeret, og det er den eneste grænseflade, der er værd at følge.