Browse Source

option to refetch certificate

pull/14/head
Dennis Koot 10 years ago
parent
commit
d4c9ce4510
1 changed files with 21 additions and 6 deletions
  1. +21
    -6
      getssl

+ 21
- 6
getssl View File

@ -13,7 +13,7 @@
# GNU General Public License at <http://www.gnu.org/licenses/> for
# more details.
# Usage: getssl [-h|--help] [-d|--debug] [-c] [-a|--all] [-w working_dir] domain
# Usage: getssl [-h|--help] [-d|--debug] [-c] [-r|--refetch] [-a|--all] [-w working_dir] domain
# Revision history:
# 2016-01-08 Created (v0.1)
@ -32,6 +32,7 @@
# 2016-01-29 Fix ssh-reload-command, extra waiting for DNS-challenge, add some error_exit and cleanup help message (v0.14)
# 2016-01-29 added -a|--all option to renew all configured certificates (v0.15)
# 2016-01-29 added option for eliptic curve keys (v0.16)
# 2016-01-29 added -r|--refetch option to refetch certificate from site (v0.16)
# ---------------------------------------------------------------------------
PROGNAME=${0##*/}
@ -50,6 +51,7 @@ RENEW_ALLOW="30"
PRIVATE_KEY_ALG="rsa"
_USE_DEBUG=0
_CREATE_CONFIG=0
_REFETCH_CERT=0
_RENEW_ALL=0
clean_up() { # Perform pre-exit housekeeping
@ -83,7 +85,7 @@ signal_exit() { # Handle trapped signals
}
usage() {
echo -e "Usage: $PROGNAME [-h|--help] [-d|--debug] [-c] [-a|--all] [-w working_dir] domain"
echo -e "Usage: $PROGNAME [-h|--help] [-d|--debug] [-c] [-r|--refetch] [-a|--all] [-w working_dir] domain"
}
log() {
@ -130,7 +132,7 @@ write_getssl_template() {
ACCOUNT_KEY_LENGTH=4096
ACCOUNT_KEY="$WORKING_DIR/account.key"
PRIVATE_KEY_ALG="rsa"
# The command needed to reload apache / nginx or whatever you use
#RELOAD_CMD=""
# The time period within which you want to allow renewal of a certificate - this prevents hitting some of the rate limits.
@ -163,7 +165,7 @@ write_domain_template() {
#ACCOUNT_KEY_LENGTH=4096
#ACCOUNT_KEY="$WORKING_DIR/account.key"
PRIVATE_KEY_ALG="rsa"
# Additional domains - this could be multiple domains / subdomains in a comma separated list
SANS=${EX_SANS}
@ -294,7 +296,8 @@ $(usage)
Options:
-h, --help Display this help message and exit
-d, --debug Outputs debug information
-c, Create default config files
-c, --create Create default config files
-r, --refetch Refetch current certificates from site
-a, --all Renew all certificates
-w working_dir Working directory
@ -315,10 +318,12 @@ while [[ -n $1 ]]; do
_USE_DEBUG=1 ;;
-c | --create)
_CREATE_CONFIG=1 ;;
-r | --refetch)
_REFETCH_CERT=1 ;;
-a | --all)
_RENEW_ALL=1 ;;
-w)
echo "working directory"; shift; WORKING_DIR="$1" ;;
shift; WORKING_DIR="$1" ;;
-* | --*)
usage
error_exit "Unknown option $1" ;;
@ -357,6 +362,9 @@ if [ ${_RENEW_ALL} -eq 1 ]; then
if [ ${_USE_DEBUG} -eq 1 ]; then
cmd="$cmd -d"
fi
if [ ${_REFETCH_CERT} -eq 1 ]; then
cmd="$cmd -r"
fi
cmd="$cmd $dir"
debug "CMD: $cmd"
@ -443,6 +451,13 @@ if [ -f "$DOMAIN_DIR/getssl.cfg" ]; then
. "$DOMAIN_DIR/getssl.cfg"
fi
# refetch the certificate from the server if option is set
if [ ${_REFETCH_CERT} -eq 1 ]; then
info "refetch certificate for $DOMAIN and save to $DOMAIN_DIR/${DOMAIN}.crt"
EX_CERT=$(echo | openssl s_client -servername ${DOMAIN} -connect ${DOMAIN}:443 2>/dev/null | openssl x509 2>/dev/null)
echo "$EX_CERT" > $DOMAIN_DIR/${DOMAIN}.crt
fi
if [ -f "$CERT_FILE" ]; then
debug "certificate $CERT_FILE exists"
enddate=$(openssl x509 -in $CERT_FILE -noout -enddate 2>/dev/null| cut -d= -f 2-)


Loading…
Cancel
Save