Check ssl certs

Script: check_ssl_certs

check_ssl_certs is a plugin to check local certificats.

It loops over 1 or multiple certificate files and reads the expiration date from is. This functionality requires the openssl binary in $PATH.

It sends performace data with count of days left.

Remark:

This is just a local check of the certificate file. It cannot detect a revocation at the issuer.

Requirements

  • openssl client

Standalone installation

From this repository ypu need next to this script:

  • inc_pluginfunctions shared function for all IML checks written in bash

Syntax

Start the script with -h to get the help.

______________________________________________________________________

CHECK_SSL_CERTS
v1.4

(c) Institute for Medical Education - University of Bern
Licence: GNU GPL 3

https://os-docs.iml.unibe.ch/icinga-checks/Checks/check_ssl_certs.html
______________________________________________________________________

Check locally installed SSL client certificates and warn if the 
expiration date comes closer. 

SYNTAX:
check_ssl_certs [-w WARN_LIMIT] [-c CRITICAL_LIMIT] [-f "FILELIST"]

OPTIONS:

    -f FILELIST    file filter to find certificates using globbing 
                   (default: /etc/ssl/certs/*.cert.cer)
                   To use multiple sources seperate them with a space char.
                   Quote your parameter value if you use multiple sources or * char.
    -w VALUE       warning level in days before expiration (default: 14)
    -c VALUE       critical level in days before expiration (default: 5)

    -h or --help   show this help.

PARAMETERS:

    None.

EXAMPLE:

    check_ssl_certs -f "/etc/ssl/certs/*example.com.*.cer /somewhere/else/*.cer"
        Set 2 folders where to find the client certificates.
        They are seperated by space and both use * for globbing

    check_ssl_certs -w 30 -c 3 
        Overide the warning and critical level.

Examples

Get values

./check_ssl_certs

Checks files that match the default filter /etc/ssl/certs/*.cert.cer.

OK: SSL certs :: OK www.example.com [34d] ; 

----- [1 of 1] www.example.com - expires in 34 days
Issuer: C=US, O=Let's Encrypt, CN=R3
Not Before: Feb 28 23:25:10 2024 GMT
Not After : May 28 23:25:09 2024 GMT
Subject: CN=www.example.com
DNS:www.example.com
File: /etc/ssl/certs/www.example.com.cert.cer

INFO: warning starts 14 d before expiration, raising to critical 5 days before

 |ssl-wwwexamplecom=34;;;0