diff --git a/getssl b/getssl index d7cde46..d6db933 100755 --- a/getssl +++ b/getssl @@ -164,10 +164,11 @@ # 2016-12-16 updated DOMAIN_PEM_LOCATION when using DUAL_RSA_ECDSA (1.87) # 2016-12-19 allow user to ignore permission preservation with nfsv3 shares (1.88) # 2016-12-19 bug fix for CA (1.89) +# 2016-12-19 included IGNORE_DIRECTORY_DOMAIN option (1.90) # ---------------------------------------------------------------------------------------- PROGNAME=${0##*/} -VERSION="1.89" +VERSION="1.90" # defaults CODE_LOCATION="https://raw.githubusercontent.com/srvrco/getssl/master/getssl" @@ -198,6 +199,7 @@ DUAL_RSA_ECDSA="false" SKIP_HTTP_TOKEN_CHECK="false" CSR_SUBJECT="/" GETSSL_IGNORE_CP_PRESERVE="false" +IGNORE_DIRECTORY_DOMAIN="false" HTTP_TOKEN_CHECK_WAIT=0 ORIG_UMASK=$(umask) _USE_DEBUG=0 @@ -435,7 +437,11 @@ create_csr() { # create a csr using a given key (if it doesn't already exist) if [[ -s "$csr_file" ]]; then debug "domain csr exists at - $csr_file" # check all domains in config are in csr - alldomains=$(echo "$DOMAIN,$SANS" | sed -e 's/ //g; s/,$//; y/,/\n/' | sort -u) + if [[ "$IGNORE_DIRECTORY_DOMAIN" == "true" ]]; then + alldomains=$(echo "$SANS" | sed -e 's/ //g; s/,$//; y/,/\n/' | sort -u) + else + alldomains=$(echo "$DOMAIN,$SANS" | sed -e 's/ //g; s/,$//; y/,/\n/' | sort -u) + fi domains_in_csr=$(openssl req -text -noout -in "$csr_file" \ | sed -n -e 's/^ *Subject: .* CN=\([A-Za-z0-9.-]*\).*$/\1/p; /^ *DNS:.../ { s/ *DNS://g; y/,/\n/; p; }' \ | sort -u) @@ -1522,13 +1528,19 @@ fi #create SAN if [[ -z "$SANS" ]]; then SANLIST="subjectAltName=DNS:${DOMAIN}" +elif [[ "$IGNORE_DIRECTORY_DOMAIN" == "true" ]]; then + SANLIST="subjectAltName=DNS:${SANS//,/,DNS:}" else SANLIST="subjectAltName=DNS:${DOMAIN},DNS:${SANS//,/,DNS:}" fi debug "created SAN list = $SANLIST" # list of main domain and all domains in SAN -alldomains=$(echo "$DOMAIN,$SANS" | sed "s/,/ /g") +if [[ "$IGNORE_DIRECTORY_DOMAIN" == "true" ]]; then + alldomains=${SANS//,/ } +else + alldomains=$(echo "$DOMAIN,$SANS" | sed "s/,/ /g") +fi # check domain and san list for duplicates echo "" > "$TEMP_DIR/sanlist" @@ -1595,7 +1607,11 @@ fi info "Verify each domain" # loop through domains for cert ( from SANS list) -alldomains=$(echo "$DOMAIN,$SANS" | sed "s/,/ /g") +if [[ "$IGNORE_DIRECTORY_DOMAIN" == "true" ]]; then + alldomains=${SANS//,/ } +else + alldomains=$(echo "$DOMAIN,$SANS" | sed "s/,/ /g") +fi dn=0 for d in $alldomains; do # $d is domain in current loop, which is number $dn for ACL