Automatisering av sertifikater


Mange har opplevd at tjenester blir utilgjengelige på grunn av utgått sertifikat. Denne artikkelen ser på bruk av automatisering for å spare arbeid og unngå unødvendig nedetid.


Mange har opplevd at tjenester blir utilgjengelige på grunn av utgått sertifikat. Denne artikkelen ser på bruk av automatisering for å spare arbeid og unngå unødvendig nedetid.

SSL/TLS har blitt en essensiell del av kommunikasjonen på Internett for å sikre konfidensialitet og integritet for dataene som utveksles. SSL/TLS er mest kjent som brukt for HTTPS web-sider, men brukes eksempelvis også i server til server kommunikasjon, SSL VPN og som sikkerhetslag utenpå flere andre protokoller som SMTP, SIP og FTP. De aller fleste som jobber med drift av IT-tjenester har vært borti SSL/TLS-sertifikater i en eller annen grad.

Økt behov for automatisering

Håndtering av digitale sertifikater har tradisjonelt sett vært en manuell prosess. Det kan være en brysom oppgave i en hektisk hverdag, avhengig av hvilke rutiner man har for bestilling og hvor mange tjenester som bruker de. Den nye maksgrensen for varighet på sertifikater har i praksis blitt satt til ett år etter press fra Apple i fjor høst, som Sicra har skrevet om her tidligere. Dette øker byrden for manuell håndtering ettersom det tidligere ofte var 2 år som ble brukt.

For at sertifikatene man bruker på tjenestene sine skal stoles på av offentligheten, må de være signert av en av utstederne som er anerkjent av Internettfellesskapet. Vi skal ikke gå videre inn på detaljer om dette her. Mer om utstedere og utfordringer knyttet til tillit for disse kan man lese om i denne artikkelen.

Som et resultat av økt fokus på sikkerhet og personvern på Internett de siste årene, ble utstederen Let’s encrypt opprettet av Internet Security Research Group (ISRG) i 2016. Målet er å gjøre infrastrukturen for sikkerhet og kryptering på Internett enklere og billigere. En viktig forskjell sammenlignet med andre utstedere er at Let’s Encrypt ikke utgir sertifikater med lenger enn 90 dagers varighet. Fornying av disse skal skje automatisk for å unngå mye manuelt arbeid som en så kort levetid ville medført. Denne artikkelen tar for seg Let’s Encrypt siden de har størst fokus på automatisering og har lav barriere for testing. Andre sertifikatutstedere har også APIer tilgjengelig for tilsvarende funksjonalitet, som f.eks. Buypass med Go SSL.

Automatiseringen mot Let’s Encrypt:

  • Man registrerer en konto hos Let’s encrypt og genererer samtidig et nøkkelpar som bestilleren bruker videre for nye sertifikater eller fornying.
  • Når man bestiller signering av sertifikat for et nytt domene genereres det en sertifikatforspørsel (CSR) som signeres med privatnøkkelen i nøkkelparet bestilleren har.
  • Let’s encrypt har dermed verifisere hvilken konto som bestiller signering og hvilken public key som skal brukes til å validere beviset for eierskap til domenet.
  • Let’s encrypt sender tilbake en tilfeldig valgt verdi som bestilleren signerer med privatnøkkelen i nøkkelparet sitt for å bevise eierskap til domenet.
  • Det signerte beviset legges enten som en txt-record i DNS eller på en gitt bane på en web-tjeneste under domenet sertifikatet skal gjelde for.
  • Let’s encrypt kan da hente det signerte beviset via DNS eller http og bekrefte at signaturen stemmer med den offentlige nøkkelen til bestilleren.
  • Etter eierskap til domenet er bevist signerer Let’s encrypt sertifikatet og sender det til bestilleren.
  • Bestilleren publiserer sertifikatet sammen med riktig sertifikatkjede til tjenesten som skal bruke det.
  • Fornying og tilbakekalling av sertifikater kan gjøres direkte med nøkkelparet som ble generert initielt, uten noen ny runde med bevis av eierskap for domenet.

Om man publiserer tjenester via F5 BigIP er det mulig å kjøre alt internt på denne og kun gjøre en manuell jobb i DNS for nye domenenavn man skal bestille sertifikat til.

En annen mulighet er innebygget integrasjon på F5 BigIP mot de mer tradisjonelle utstederne. Dette kan man bruke til å bestille signering av nye sertifikater direkte fra management-GUI og automatisk fornye eksisterende sertifikater. Dette fungerer i skrivende stund på nyeste versjon mot et utvalg av de større utstederne (Digicert/Symantec, Godaddy og Comodo/Sectigo)

Et tredje alternativ er å bruke automatiseringsverktøy som Salt eller Ansible til å håndtere bestilling/fornying av sertifikater mot en utsteder som har API for dette og deretter legge inn/oppdatere sertifikater via API mot BigIP, Citrix ADC (Netscaler) eller en annen web-tjeneste.

Overvåk automatiseringen

Det er likevel viktig å tenke på overvåkning og varsling for å verifisere at automatiseringen fungerer som den skal. Om det skjer noe galt med automatikken, må det fanges opp og ordnes før man havner i samme fella som når man glemmer manuelle rutiner.

Kontakt oss gjerne om du vil vite mer om dette, eller trenger bistand til å sette opp slik automatisering.