From 09974133b3d4c47c3c1f4c18264ec9500835c12d Mon Sep 17 00:00:00 2001 From: Adam Mizerski Date: Mon, 12 Jul 2021 09:54:09 +0200 Subject: [PATCH] ssl-certificate-expiry: fix handling domains starting with digits resolves #1224 --- plugins/ssl/ssl-certificate-expiry | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/plugins/ssl/ssl-certificate-expiry b/plugins/ssl/ssl-certificate-expiry index 8a1d1b31..6c6b6d6e 100755 --- a/plugins/ssl/ssl-certificate-expiry +++ b/plugins/ssl/ssl-certificate-expiry @@ -165,6 +165,11 @@ print_expire_days() { fi } +my_clean_fieldname() { + # if a domain starts with a digit, or its an IP address, prepend '_' + clean_fieldname "$(echo "$@" | sed -E 's/^([0-9])/_\1/')" +} + main() { for service in $services; do if echo "$service" | grep -q "_"; then @@ -176,7 +181,7 @@ main() { port=443 starttls="" fi - fieldname="$(clean_fieldname "$service")" + fieldname="$(my_clean_fieldname "$service")" valid_days=$(print_expire_days "$host" "$port" "$starttls") extinfo="" [ -z "$valid_days" ] && valid_days="U" @@ -197,7 +202,7 @@ case ${1:-} in echo 'graph_category security' echo "graph_info This graph shows the numbers of days before certificate expiry" for service in $services; do - fieldname=$(clean_fieldname "$service") + fieldname=$(my_clean_fieldname "$service") echo "${fieldname}.label $(echo "${service}" | sed 's/_/:/')" print_thresholds "${fieldname}" warning critical done