diff options
Diffstat (limited to 'letsencrypt')
| -rwxr-xr-x | letsencrypt | 19 | 
1 files changed, 15 insertions, 4 deletions
| diff --git a/letsencrypt b/letsencrypt index 7465378..593ab8f 100755 --- a/letsencrypt +++ b/letsencrypt @@ -17,7 +17,7 @@ declare COMMAND ACCOUNTKEY  declare -l GENKEY  declare RUNAS QUIET= DEBUG= -declare SRVCRT= CHAIN= CSR SRVKEY +declare SRVCRT= CHAIN CSR SRVKEY  declare -i MIN_AGE=0  declare -l HASH=  declare SUBJECT=/ @@ -62,8 +62,8 @@ usage() {  		    --san=STRING      Comma-separated list of Subject Alternative Names formatted as "type:value"  		    --keyusage=STRING Comma-separated list of Key Usages, see x509v3_config(5ssl)  		                      (default: "digitalSignature,keyEncipherment,keyCertSign") -		    --chain           Store not only the server certificate in the file specified with --output, but -		                      also the CA's +		    --chain[=FILE]    Store the server certificate along with its intermediate CA in FILE; if FILE is +		                      empty or omitted, use the file specified with --output  		    --min-age=SECONDS Don't do anything if the certificate specified by --output exists and its expiration  		                      is more than SECONDS ahead.  		    --output=FILE     Where to store the issued (signed) X.509 certificate @@ -102,7 +102,8 @@ while [ $# -gt 0 ]; do          --output=*) SRVCRT="${1#*=}";;          --min-age=*) MIN_AGE="${1#*=}";; -        --chain) CHAIN=1;; +        --chain) CHAIN=;; +        --chain=*) CHAIN="${1#*=}";;          --csr=*) CSR="${1#*=}";;          --key=*) SRVKEY="${1#*=}";;          --hash=*) HASH="${1#*=}";; @@ -295,6 +296,16 @@ if [ "$COMMAND" = 'new-cert' ]; then      cat "$x509" >"$SRVCRT"      [ ! "$DEBUG" ] || openssl x509 -noout -text <"$SRVCRT" +    # add the CA chain +    if [ ${CHAIN+x} ]; then +        if [ "${CHAIN:-$SRVCRT}" = "$SRVCRT" ]; then +            cat "$CAfile" >>"$SRVCRT" +        else +            [ -e "$CHAIN" ] || touch "$CHAIN" +            cat "$SRVCRT" "$CAfile" >"$CHAIN" +        fi +    fi +      if [ ! "$QUIET" ]; then          echo "X.509 certificate $SRVCRT has been updated or renewed"          echo | 
