check_ssl_cert - checks the validity of X.509 certificates
check_ssl_cert -H host [OPTIONS]
check_ssl_cert A Nagios plugin to check an X.509
certificate:
- checks if the server is running and delivers a valid certificate
- checks if the CA matches a given pattern
- checks the validity
- -A,--noauth
- ignore authority warnings (expiration only)
- --all
- enables all the possible optional checks at the maximum level
-
--altnames
- matches the pattern specified in -n with alternate names too
-
--check-ciphers grade
- checks the offered ciphers
-
--check-ciphers-warnings
- critical if nmap reports a warning for an offered cipher
- -C,--clientcert
path
- use client certificate to authenticate
-
--clientpass phrase
- set passphrase for client certificate.
- -c,--critical
days
- minimum number of days a certificate has to be valid to issue a critical
status
- --crl
- checks revokation via CRL (requires --rootcert-file)
- --curl-bin
path
- path of the curl binary to be used
-
--curl-user-agent string
- user agent that curl shall use to obtain the issuer cert
- custom HTTP header sent when getting the cert
- --dane
- verifies there are valid TLSA records for the returned certificate,
requires OpenSSL 1.1.0 or later
- --dane
211
- verify that a valid DANE-TA(2) SPKI(1) SHA2-256(1) TLSA record exists
- --dane
301
- verify that a valid DANE-EE(3) Cert(0) SHA2-256(1) TLSA record exists
- --dane
302
- verify that a valid DANE-EE(3) Cert(0) SHA2-512(2) TLSA record exists
- --dane
311
- verify that a valid DANE-EE(3) SPKI(1) SHA2-256(1) TLSA record exists
- --date path
- path of the date binary to be used
- -d,--debug
- produces debugging output (can be specified more than once)
-
--debug-cert
- stores the retrieved certificates in the current directory
- --dig-bin
path
- path of the dig binary to be used
- --ecdsa
- signature algorithm selection: force ECDSA certificate
- --element
number
- checks N cert element from the begining of the chain
- -e,--email
address
- pattern to match the email address contained in the certificate
- -f,--file
file
- local file path (works with -H localhost only) with -f you can not only
pass a x509 certificate file but also a certificate revocation list (CRL)
to check the validity period
- --file-bin
path
- path of the file binary to be used
-
--fingerprint SHA1
- pattern to match the SHA1-Fingerprint
-
--first-element-only
- verify just the first cert element, not the whole chain
-
--force-perl-date
- force the usage of Perl for date computations
- --format
FORMAT
- custom output format (e.g. "%SHORTNAME% OK %CN% from
'%CA_ISSUER_MATCHED%'")
- -h,--help,-?
- this help message
-
--http-use-get
- use GET instead of HEAD (default) for the HTTP related checks
-
--ignore-altnames
- ignores alternative names when matching pattern specified in -n (or the
host name)
-
--ignore-exp
- ignore expiration date
-
--ignore-host-cn
- do not complain if the CN does not match the host name
-
--ignore-ocsp
- do not check revocation with OCSP
-
--ignore-ocsp-timeout
- ignore OCSP result when timeout occurs while checking
-
--ignore-sig-alg
- do not check if the certificate was signed with SHA1 or MD5
-
--ignore-sct
- do not check for signed certificate timestamps (SCT)
-
--ignore-ssl-labs-cache
- Forces a new check by SSL Labs (see -L)
-
--ignore-tls-renegotiation
- Ignores the TLS renegotiation check
- --inetproto
protocol
- Force IP version 4 or 6
-
--issuer-cert-cache dir
- directory where to store issuer certificates cache
- -i,--issuer
issuer
- pattern to match the issuer of the certificate
- -K,--clientkey
path
- use client certificate key to authenticate
- -L,--check-ssl-labs
grade
- SSL Labs assestment (please check
https://www.ssllabs.com/about/terms.html). Critical if the grade is lower
than specified.
-
--check-ssl-labs-warn grade
- SSL Labs grade on which to warn
-
--long-output list
- append the specified comma separated (no spaces) list of attributes to the
plugin output on additional lines. Valid attributes are: enddate,
startdate, subject, issuer, modulus, serial, hash, email, ocsp_uri and
fingerprint. 'all' will include all the available attributes.
- -n,--cn
name
- pattern to match the CN of the certificate (can be specified multiple
times)
- --nmap-bin
path
- path of the nmap binary to be used
-
--no-perf
- do not show performance data
-
--no-proxy
- ignores the http_proxy and https_proxy environment variables
-
--no-ssl2
- disable SSL version 2
-
--no-ssl3
- disable SSL version 3
-
--no-tls1
- disable TLS version 1
-
--no-tls1_1
- disable TLS version 1.1
-
--no-tls1_3
- disable TLS version 1.3
-
--no-tls1_2
- disable TLS version 1.2
-
--not-issued-by issuer
- check that the issuer of the certificate does not match the given
pattern
-
--not-valid-longer-than days
- critical if the certificate validity is longer than the specified
period
- -N,--host-cn
- match CN with the host name
-
--ocsp-critical hours
- minimum number of hours an OCSP response has to be valid to issue a
critical status
-
--ocsp-warning hours
- minimum number of hours an OCSP response has to be valid to issue a
warning status
- -o,--org
org
- pattern to match the organization of the certificate
- --openssl
path
- path of the openssl binary to be used
- --password
source
- password source for a local certificate, see the PASS PHRASE ARGUMENTS
section openssl(1)
- -p,--port
port
- TCP port
- -P,--protocol
protocol
- use the specific protocol: ftp, ftps, http, https (default), h2 (http/2),
imap, imaps, irc, ircs, ldap, ldaps, mysql, pop3, pop3s, postgres, sieve,
smtp, smtps, xmpp, xmpp-server.
These protocols switch to TLS using StartTLS: ftp, imap, irc, ldap, mysql,
pop3, smtp.
- --proxy
proxy
- sets http_proxy
-
--require-no-ssl2
- critical if SSL version 2 is offered
-
--require-no-ssl3
- critical if SSL version 3 is offered
-
--require-no-tls1
- critical if TLS 1 is offered
-
--require-no-tls1_1
- critical if TLS 1.1 is offered
- --resolve
ip
- provides a custom IP address for the specified host
- -s,--selfsigned
- allows self-signed certificates
- --serial
serialnum
- pattern to match the serial number
- --skip-element
number
- skip checks on N cert element from the begining of the chain
- --sni name
- sets the TLS SNI (Server Name Indication) extension in the ClientHello
message to 'name'
- --ssl2
- force SSL version 2
- --ssl3
- force SSL version 3
-
--require-ocsp-stapling
- require OCSP stapling
-
--require-san
- require the presence of a Subject Alternative Name extension
- -r,--rootcert
cert
- root certificate or directory to be used for certificate validation
(passed to openssl's -CAfile or -CApath)
-
--rootcert-dir dir
- root directory to be used for certificate validation (passed to openssl's
-CApath) overrides option -r,--rootcert
-
--rootcert-file cert
- root certificate to be used for certificate validation (passed to
openssl's -CAfile) overrides option -r,--rootcert
- --rsa
- signature algorithm selection: force RSA certificate
- --temp dir
- directory where to store the temporary files
- --terse
- terse output (also see --verbose)
- -t,--timeout
- seconds timeout after the specified time (defaults to 120 seconds)
- --tls1
- force TLS version 1
- --tls1_1
- force TLS version 1.1
- --tls1_2
- force TLS version 1.2
- --tls1_3
- force TLS version 1.3
- -u,--url
URL
- HTTP request URL
- -v,--verbose
- verbose output (can be specified more than once)
- -V,--version
- version
- -w,--warning
days
- minimum number of days a certificate has to be valid to issue a warning
status
- --xmpphost
name
- specifies the host for the "to" attribute of the stream
element
- -4
- forces IPv4
- -6
- forces IPv6
- -d,--days
days
- minimum number of days a certificate has to be valid (see --critical and
--warning)
- --ocsp
- check revocation via OCSP
- -S,--ssl
version
- force SSL version (2,3) (see: --ssl2 or --ssl3)
If the host has multiple certificates and the installed openssl
version supports the -servername option it is possible to specify the TLS
SNI (Server Name Idetificator) with the -N (or --host-cn) option.
check_ssl_cert returns a zero exist status if it finds no errors,
1 for warnings, 2 for a critical errors and 3 for unknown problems
Please report bugs to:
https://github.com/matteocorti/check_ssl_cert/issues
Matteo Corti (matteo (at) corti.li ) See the AUTHORS file for the
complete list of contributors