Automatisert Sertifikat Utløps Sjekker om CentOS

Det er viktig å holde styr på utløpsdatoer for Secure Socket Layers (SSL) sertifikater, og så det er nyttig å ha en periodisk kontroll på alle sertifikater i bruk på et system, som vil varsle systemer administratorer når et sertifikat er i ferd med å utløpe. Denne artikkelen viser en måte å sette opp en slik prosedyre for CentOS og andre RHEL derivater.

En viktig del av å bruke SSL er å holde styr på utløpsdatoer på sertifikater. De fleste klientprogramvare vil rettmessig nekter å koble til en server som presenterer et utgått sertifikat, noe som resulterer i avbrutte tjenester. For CentOS og andre RHEL baserte distribusjoner, krypto-utils
pakken inneholder et svært nyttig verktøy kalt certwatch
, som kan brukes til å oppdage om et sertifikat utløper i nær fremtid. Dette er supplert med en cron script i /etc/cron.daily
med samme navn, som vil sende ut advarsler når SSL-sertifikater brukes av Apache web server er i ferd med å utløpe.

Etter å ha systemer rapportere når sertifikater for nettsteder utløper allerede er nyttig, men hva med de andre sertifikater som er i bruk? Du kan bruke SSL-sertifikater for å sikre POP3 og IMAP, og for tunnel
tilkoblinger. Cron script utstyrt med certwatch
bestemmer hvilke sertifikater for å sjekke ved å spørre Apache hvilke sertifikater er i bruk. Å ha certwatch
også sjekke sertifikater som brukes av andre systemer, trenger vi en modifisert versjon av cron script:

 # /bin /bash ## Issue advarsel e-post hvis SSL-sertifikater utløper! ved hjelp certwatch (1). # Basert på certwatch cron script fra CentOS krypto-verktøy pakke # [-r /etc /sysconfig /httpd] & & . /etc/sysconfig/httpdINCLUDE_CERTS='/etc/stunnel/*.pem /usr/share/ssl/certs/*.pem /usr/share/ssl/certs/*.crt '-sertifikater = `ls $ INCLUDE_CERTS 2 > /dev /null`RETVAL = $? test $ RETVAL -eq 0 || exit 0 for ci $ konserter; do # Kontroller om en advarsel er nødvendig, deretter utstede en hvis så. hvis [[ ! " $ c " = ~ Ca-bundle]]; deretter /usr /bin /certwatch $ CERTWATCH_OPTS -q " $ c " & & /usr /bin /certwatch $ CERTWATCH_OPTS " $ c " | /usr /sbin /sendmail -oem -oi -t 2 > /dev /null Fidone 

Skriptet ovenfor er ganske enkle, i den forstand at det må endres for å indikere hvor sertifikatene som trenger å bli sett på er plassert. De som er spesifisert i INCLUDE_CERTS
variabel, som er matet til ls
. For resten, du kan haike sammen med innstillingene som den vanlige certwatch cron script bruker, som er definert i /etc /sysconfig /httpd
. I løkken over alle sertifikater vi ekskludere filer med ca-bundle
i navnet. Disse inneholder store samlinger av sertifikater fra sertifiseringsinstanser (CA) 's, hvorav mange har utløpt allerede. Disse vil alltid generere et varsel, og siden disse må vedlikeholdes av CAs seg selv, er det ikke nødvendig å sjekke dem.

Denne korte opplæringen er bidratt av Joor Loohuis. Loohuis er daglig leder ved Loco (eller Loohuis Consulting), som er fokusert på gratis og Open Source programvare (FOSS) lisensiering og webutvikling.