diff --git a/README b/README index 42045ae..757eec0 100644 --- a/README +++ b/README @@ -1,11 +1,13 @@ -With the good work by "Let’s Encrypt" in providing free SSL certs for users, I wanted a quick way to check all the domains I look aftet -to determine which ones have correct SSL certs, and which ones are in need of updating etc. +With the good work by "Let’s Encrypt" in providing free SSL certs for users, I wanted a quick way to check all the domains I look after to determine which ones have correct SSL certs, and which ones are in need of updating etc. -This bash file is the first draft a a programto do that. It can either be run against a list of file names, or on a single server with -the aim of getting all the domain names from the server. The output looks like; +This bash file is the first draft a a program to do that. It can either be run against a list of file names, from the directories in your Lets Encrypt live directory or on a single server with the aim of getting all the domain names from the server. + +The output looks like: Domain cert issued for valid until cert issued by possible issues? domain1.com domain1.com Dec 22 09:19:00 2016 GMT Let's Encrypt Authority X1 - certificate near renewal date domain2.com domain2.com (alt) Dec 22 11:42:00 2016 GMT Let's Encrypt Authority X1 - certificate near renewal date domain3.net domain3.net Mar 4 10:10:00 2016 GMT Let's Encrypt Authority X1 +V0.1 initial commit by SRVRCO +v0.2 modification by MrSleeps diff --git a/checkssl b/checkssl index 7304bb8..15e6356 100755 --- a/checkssl +++ b/checkssl @@ -2,26 +2,26 @@ # --------------------------------------------------------------------------- # checkssl - checks ssl certs for a set of domains -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License at for +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License at for # more details. -# Usage: checkssl [-h|--help] [-d|--debug] [-f|--file filename] [-s|--server stype] +# Usage: checkssl [-h|--help] [-d|--debug] [-f|--file filename] [-s|--server stype] [-l|--location] # Revision history: # 2015-12-05 Created (v0.1) +# 2015-12-05 Added the ability to automatically search for domains from the Lets Encrypt live directory (v0.2 - sleeps) # --------------------------------------------------------------------------- PROGNAME=${0##*/} -VERSION="0.1" - +VERSION="0.2" RENEW_ALERT="30" # set to number of days to be alerted for certificate renewal clean_up() { # Perform pre-exit housekeeping @@ -54,7 +54,7 @@ signal_exit() { # Handle trapped signals } usage() { - echo -e "Usage: $PROGNAME [-h|--help] [-d|--debug] [-f|--file filename] [-s|--server stype]" + echo -e "Usage: $PROGNAME [-h|--help] [-d|--debug] [-f|--file filename] [-s|--server stype] [-l|--location directory]" } log() { @@ -81,6 +81,9 @@ help_message() { Where 'filename' is a file containing a list of domain names -s, --server server_type Where 'server_type' is the server type (cpanel, ISPconfig, apache2 ...) + -l, --location directory + Where 'directory' is where your lets encrypt live directory is + (typically /etc/letsencrypt/live/) _EOF_ return @@ -103,6 +106,8 @@ while [[ -n $1 ]]; do FILEARG=true; shift; FILE="$1" ;; -s | --server) SERVERARG=true; shift; STYPE="$1" ;; + -l | --location) + LOCATIONARG=true; shift; LOC="$1";; -* | --*) usage error_exit "Unknown option $1" ;; @@ -114,7 +119,7 @@ done # Main logic -if [[ ! $FILEARG && ! $SERVERARG ]]; then +if [[ ! $FILEARG && ! $SERVERARG && ! $LOCATIONARG ]]; then help_message graceful_exit fi @@ -147,6 +152,16 @@ if [ $SERVERARG ]; then fi fi +if [ $LOCATIONARG ]; then +LELOC=$LOC/* + for f in $LELOC; do + if [[ -d $f ]]; then + dir=$(basename "$f") + echo $dir >> $LIST_OF_DOMAINS + fi + done +fi + cat $LIST_OF_DOMAINS | while read -d $'\n\b' DOMAIN; do PROBLEMS="" debug " --------------- domain ${DOMAIN} ---------------------" @@ -184,4 +199,3 @@ echo "" cat $DATA_OUT | column -t -s"|" graceful_exit -