From e448b64c5189eb73e356d90671852ccf48c4806d Mon Sep 17 00:00:00 2001 From: Tim Hughes Date: Sun, 29 Nov 2020 23:21:36 +0000 Subject: [PATCH] Adds compatability with in Vault KV v2 api --- README.md | 4 ++-- deploy/vault.sh | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index cd747666..292e1c75 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# An ACME Shell script: acme.sh +# An ACME Shell script: acme.sh ![LetsEncrypt](https://github.com/acmesh-official/acme.sh/workflows/LetsEncrypt/badge.svg) ![Shellcheck](https://github.com/acmesh-official/acme.sh/workflows/Shellcheck/badge.svg) @@ -6,7 +6,7 @@ ![DockerHub](https://github.com/acmesh-official/acme.sh/workflows/Build%20DockerHub/badge.svg) - + [![Join the chat at https://gitter.im/acme-sh/Lobby](https://badges.gitter.im/acme-sh/Lobby.svg)](https://gitter.im/acme-sh/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Docker stars](https://img.shields.io/docker/stars/neilpang/acme.sh.svg)](https://hub.docker.com/r/neilpang/acme.sh "Click to view the image on Docker Hub") [![Docker pulls](https://img.shields.io/docker/pulls/neilpang/acme.sh.svg)](https://hub.docker.com/r/neilpang/acme.sh "Click to view the image on Docker Hub") diff --git a/deploy/vault.sh b/deploy/vault.sh index 70c80444..76b7d397 100644 --- a/deploy/vault.sh +++ b/deploy/vault.sh @@ -52,11 +52,27 @@ vault_deploy() { _cca=$(sed -z 's/\n/\\n/g' <"$4") _cfullchain=$(sed -z 's/\n/\\n/g' <"$5") + # Fix vault prefix for KV-V2 + if [ -n "$VAULT_KV_V2" ]; then + VAULT_PREFIX=$(echo "${VAULT_PREFIX}" | sed 's|/$||') + if test "${VAULT_PREFIX#*'/'}" == "${VAULT_PREFIX}"; then + VAULT_PREFIX="${VAULT_PREFIX}/data" + else + VAULT_PREFIX=$(echo "${VAULT_PREFIX}" | sed 's|/|/data/|') + fi + fi + URL="$VAULT_ADDR/v1/$VAULT_PREFIX/$_cdomain" export _H1="X-Vault-Token: $VAULT_TOKEN" if [ -n "$FABIO" ]; then _post "{\"cert\": \"$_cfullchain\", \"key\": \"$_ckey\"}" "$URL" + elif [ -n "$VAULT_KV_V2" ]; then + _post "{\"data\": {\"value\": \"$_ccert\"}}" "$URL/cert.pem" + _post "{\"data\": {\"value\": \"$_ckey\"}}" "$URL/cert.key" + _post "{\"data\": {\"value\": \"$_cca\"}}" "$URL/chain.pem" + _post "{\"data\": {\"value\": \"$_cfullchain\"}}" "$URL/fullchain.pem" + else _post "{\"value\": \"$_ccert\"}" "$URL/cert.pem" _post "{\"value\": \"$_ckey\"}" "$URL/cert.key"