Återkallad klient ansluter fortfarande: listan kom aldrig fram
Återkallelse är en indata till certifikatverifieringen, inte ett kommando som avslutar en session. Jämför hur en ny anslutning och en pågående tunnel ser listan.
Återkallelse tränger aldrig in i en pågående tunnel för att radera en session. Listan är en indata till certifikatverifieringen och slås upp under utbytet på styrkanalen som inleder en TLS-session. Det enda faktumet förklarar båda överraskningarna: en återkallad klient ansluter igen eftersom listan aldrig nådde verifieraren, och en befintlig session överlever eftersom ingen verifierade något på nytt.
En lista är indata, inte en åtgärd
När sessionen etableras validerar servern klientcertifikatet mot sina förtroendeankare, och återkallelsedirektivet lägger till en listning i det beslutet. Kontrollen sker på servern, så klienten kan inte se att certifikatet har återkallats och fortsätter att erbjuda samma. En profil som fortfarande ansluter bevisar därför bara att någon verifierare accepterade kedjan, inte att återkallelsen misslyckades.
Listan är själv ett signerat objekt med ett utfärdandedatum och ett nästa uppdateringsdatum. En orelaterad lista, en som signerats av en annan myndighet eller en vars nästa uppdatering har passerat ersätter inte den aktuella, och om en inaktuell lista avvisas eller tyst accepteras beror på driftsättningen.
Ny anslutning kontra pågående session
Återkallelse utvärderas när en session etableras eller omförhandlas, inte mot datakanalen för varje paket. En klient som redan är ansluten har trafiknycklar och släpper därför fortfarande igenom paket efter att certifikatet dyker upp på listan. Standardintervallet för omförhandling mäts i timmar, och därför kan en uppdaterad lista gälla för nya medan en pågående tunnel står kvar.
| Situation | What the list does | When it applies |
|---|---|---|
| Fresh connection | Blocks the handshake | At verification, immediately |
| Renegotiation | Blocks the new exchange | At the next renegotiation interval |
| Established data channel | Nothing | Until the session ends |
Omedelbar efterlevnad kräver en medveten åtgärd och inte bara listan. En omstart av tjänsten tvingar varje klient att ansluta igen, medan avslutandet av en enda session via administrationsgränssnittet lämnar de andra orörda. Välj en per incident och notera vilken du använde. De två alternativen har olika räckvidd, och det är det egentliga beslutet.
Leverera filen som verifieraren faktiskt läser
Listan måste genereras från myndighetens register och sedan kopieras till varje maskin som verifierar certifikat. Att generera den på CA-värden och aldrig installera den på servern är det vanligaste felet, och det ser precis ut som en trasig återkallelsefunktion.
ca ca.crt
cert server.crt
key server.key
crl-verify /etc/openvpn/crl.pem
Två detaljer avgör om filen verkligen läses. En relativ sökväg löses mot konfigurationskatalogen, så en kopia som lämnats i en operatörs hemkatalog hittas kanske aldrig. Och daemonen släpper vanligtvis ifrån sig privilegier efter start, så körkontot behöver sökrätt på varje överordnad katalog och läsrätt på filen. Kontrollera båda med körkontot i stället för med root, annars bevisar testet fel sak.
På systemd-värdar kan en härdad enhet också dölja sökvägen, med en skrivskyddad vy eller en skyddad systemkatalog. Inifrån tjänsten går det inte att skilja från en saknad fil, så kontrollera enhetens begränsningar innan du letar efter ett behörighetsfel. Läs enhetsfilen innan du skyller på filens läge.
Bekräfta på servern, inte på klienten
Serverloggen namnger vad som hände: att listan öppnades, laddades eller att verifieringen misslyckades med det återkallade serienumret. Klienten rapporterar bara ett allmänt handskakningsfel, och därför är klientloggar en dålig plats att leta efter ett återkallelsebeslut.
Verifiera med ett nytt försök från den återkallade profilen och sluta sedan. En lyckad anslutning från den profilen är signalen att undersöka filsökvägen och körkontot, inte att anta att listan var fel. Behåll det lyckade försöket som acceptanstest, och räkna inte en återanslutning som du inte själv såg.
Vad som inte återkallar något
Att radera profilen från en bärbar dator, ta bort certifikatfilen från klienten eller be användaren sluta ansluta ändrar ingenting på servern. Certifikatet förblir giltigt tills myndigheten registrerar återkallelsen och verifieraren läser den resulterande listan.
Det är också därför kedjan är värd att skriva ner: registrera återkallelsen, generera och signera listan, distribuera precis den filen och bekräfta att tjänstekontot kan läsa den. Varje länk är kort, och saknas en fortsätter en återkallad klient att ansluta glatt. En checklista med fyra rader slår ett antagande utan någon.