ISRG celebrates 10 years of helping build a brighter Internet →

Tilbagekaldelse af certifikater

Seneste opdatering: | Se al dokumentation

Når et certifikat ikke længere er sikkert at bruge, bør du tilbagekalde det. Dette kan ske for et par forskellige årsager. Du har, som eksempel, ved et uheld have fået delt den private nøgle på et offenligt website; hackere kan have kopieret den private nøgle fra dine servere; eller hackere har måske midlertidigt fået kontrol over dine servere eller DNS opsætning, og brugt det til at validere og udsteede et certifikat til hvilket de har den private nøgle.

Når du tilbagekalder et Let’s Encrypt certifikat, vil Let’s Encrypt vil offentliggøre denne tilbagekaldelseinformation via Online Certificate Status Protocol(OCSP), og nogle browsere vil tjekke OCSP, for at se, om de bør have tillid til et certifikat. Bemærk, at OCSP har nogle grundlæggende problemer, så ikke alle browsere udfører denne kontrol. Alligevel er tilbagekaldelse af certifikater, der tilhører kompromitterede private nøgler en vigtig praksis og er påkrævet af Let’s Encrypts Abonnentaftale.

For at tilbagekalde et certifikat via Let’s Encrypt, skal du bruge ACME API, sandsynligvis gennem en ACME-klient som Certbot. Du bliver nødt til at bevise overfor Let’s Encrypt, at du er autoriseret til at tilbagekalde certifikatet. Der er tre måder at gøre dette: fra den konto, der udstedte certifikatet, ved hjælp af en anden autoriseret konto, eller ved hjælp af certifikatets private nøgle.

Angivelse af en årsagskode

Når du tilbagekalder et certifikat, skal vi kryptere abonnenter vælge en årsagskode på følgende måde:

Tilbagekaldelsesanmodninger, der angiver en anden årsagskode, end de ovenfor beskrevne vil blive afvist.

Fra den konto, der har udstedt certifikatet

Hvis du oprindeligt udstedte certifikatet, og du stadig har kontrol over den konto, du plejede at udstede det, du kan tilbagekalde det ved hjælp af dine kontooplysninger. Certbot vil forsøge dette som standard. Eksempel:

certbot revoke --cert-path /etc/letsencrypt/archive/${YOUR_DOMAIN}/cert1.pem

Bruger en anden autoriseret konto

Hvis nogen udstedte et certifikat efter at have kompromitteret din vært eller dit DNS, vil du kunne tilbagekalde certifikatet, når du genvundet kontrollen. For at tilbagekalde certifikatet vil Let’s Encrypt sikre, at du kontrollerer domænenavnene i dette certifikat (ellers kan folk tilbagekalde hinandens certifikater uden tilladelse)!

For at validere denne kontrol, bruger Let’s Encrypt de samme metoder, som den bruger til at validere kontrollen til udstedelse: du kan sætte en værdi i en DNS TXT-post eller sætte en fil på en HTTP-server. Generelt vil en ACME-klient håndtere dette for dig. Bemærk, at de fleste ACME-klienter kombinerer validering og udstedelse, så den eneste måde at bede om valideringer på er at forsøge udstedelse. Du kan derefter tilbagekalde det resulterende certifikat, hvis du ikke ønsker det, eller blot ødelægge den private nøgle.

Hvis du vil undgå at udstede et certifikat overhovedet, kan du inkludere et ikke-eksisterende domænenavn i din kommandolinje, som vil få udstedelsen til at mislykkes, mens de stadig validerer de andre, eksisterende domænenavne. Eksempel:

certbot certonly --manual --preferred-challenges=dns -d ${YOUR_DOMAIN} -d nonexistent.${YOUR_DOMAIN}

Og følg instruktionerne. Hvis du foretrækker at validere brugen af HTTP i stedet for DNS, skal du erstatte --preferred-challenges flaget med --preferred-challenges=http.

Når du har valideret kontrollen over alle domænenavne i det certifikat, du vil tilbagekalde, du kan downloade certifikatet fra crt. h, derefter fortsætte med at tilbagekalde certifikatet, som om du havde udstedt det:

certbot revoke --cert-path /PATH/TO/downloaded-cert.pem

Ved brug af certifikatets private nøgle

Hvis du ikke oprindeligt udstedte certifikatet, men du har en kopi af den tilsvarende private nøgle, du kan tilbagekalde ved at bruge den private nøgle til at underskrive tilbagekaldelsesanmodningen. For eksempel, hvis du ser, at en privat nøgle ved et uheld er blevet offenliggjort, kan du bruge denne metode til at tilbagekalde certifikater, der brugte den private-nøgle også selvom du ikke er den person, der oprindeligt udstedte disse certifikater.

For at bruge denne metode skal du først have en kopi af den private nøgle i PEM-format.

Derefter, hvis du ikke allerede har det, download certifikatet, der skal tilbagekaldes. Let’s Encrypt logger alle certifikater til Certifikat Transparency logs, så du kan finde og downloade certifikater fra en log monitor som crt.sh. Søgning efter et matchende SubjectPublicKeyInfo (SPKI) felt vil finde alle certifikater, der bruger den private nøgle. For at udtrække SPKI hash fra en privat nøgle:

openssl pkey -outform DER -in /PATH/TO/privkey.pem -pubout | openssl sha256

Når du har den private nøgle og certifikat, kan du tilbagekalde certifikatet således:

certbot revoke --cert-path /PATH/TO/cert.pem --key-path /PATH/TO/privkey.pem --reason keyCompromise