From: Niels Laukens Date: Wed, 20 Jan 2016 10:32:56 +0000 (+0100) Subject: Add --signcsr command X-Git-Tag: v0.1.0~42^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=429ec400d8b30520a441efca6a0daf03b525360d;p=thirdparty%2Fdehydrated.git Add --signcsr command --- diff --git a/README.md b/README.md index 91700e9..1dfaf42 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,7 @@ Other dependencies are: curl, sed, grep, mktemp (all found on almost any system, Current features: - Signing of a list of domains +- Signing of a CSR - Renewal if a certificate is about to expire or SAN (subdomains) changed - Certificate revocation @@ -25,6 +26,7 @@ Default command: help Commands: --cron (-c) Sign/renew non-existant/changed/expiring certificates. + --signcsr (-s) path/to/csr.pem Sign a given CSR, output CRT on stdout (advanced usage) --revoke (-r) path/to/cert.pem Revoke specified certificate --help (-h) Show help text --env (-e) Output configuration variables for use in other scripts diff --git a/letsencrypt.sh b/letsencrypt.sh index 6d1a0a4..c180fca 100755 --- a/letsencrypt.sh +++ b/letsencrypt.sh @@ -526,6 +526,25 @@ command_sign_domains() { exit 0 } +# Usage: --signcsr (-s) path/to/csr.pem +# Description: Sign a given CSR, output CRT on stdout (advanced usage) +command_sign_csr() { + # redirect stdout to stderr + # leave stdout over at fd 3 to output the cert + exec 3>&1 1>&2 + + init_system + + csrfile="${1}" + if [ ! -r "${csrfile}" ]; then + _exiterr "Could not read certificate signing request ${csrfile}" + fi + + sign_csr "$(< "${csrfile}" )" + + exit 0 +} + # Usage: --revoke (-r) path/to/cert.pem # Description: Revoke specified certificate command_revoke() { @@ -622,6 +641,13 @@ main() { set_command sign_domains ;; + --signcsr|-s) + shift 1 + set_command sign_csr + check_parameters "${1:-}" + PARAM_CSR="${1}" + ;; + --revoke|-r) shift 1 set_command revoke @@ -702,6 +728,7 @@ main() { case "${COMMAND}" in env) command_env;; sign_domains) command_sign_domains;; + sign_csr) command_sign_csr "${PARAM_CSR}";; revoke) command_revoke "${PARAM_REVOKECERT}";; *) command_help; exit 1;; esac