From 429ec400d8b30520a441efca6a0daf03b525360d Mon Sep 17 00:00:00 2001 From: Niels Laukens Date: Wed, 20 Jan 2016 11:32:56 +0100 Subject: [PATCH] Add --signcsr command --- README.md | 2 ++ letsencrypt.sh | 27 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) 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 -- 2.47.2