mirror of
https://github.com/acmesh-official/acme.sh.git
synced 2025-05-05 15:42:45 +00:00
Adding initial deploy script for openhabian
This commit is contained in:
parent
7221d488e5
commit
39180230b2
97
deploy/openhabian.sh
Normal file
97
deploy/openhabian.sh
Normal file
@ -0,0 +1,97 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
# Config variables
|
||||
# DEPLOY_OPENHABIAN_KEYPASS : This should be default most of the time since a custom password requires openhab config changes
|
||||
# DEPLOY_OPENHABIAN_KEYSTORE : This should generate based on existing openhab env vars.
|
||||
|
||||
openhabian_deploy() {
|
||||
|
||||
# Name parameters
|
||||
_cdomain="$1"
|
||||
_ckey="$2"
|
||||
_ccert="$3"
|
||||
_cca="$4"
|
||||
_cfullchain="$5"
|
||||
|
||||
_debug _cdomain "$_cdomain"
|
||||
_debug _ckey "$_ckey"
|
||||
_debug _ccert "$_ccert"
|
||||
_debug _cca "$_cca"
|
||||
_debug _cfullchain "$_cfullchain"
|
||||
|
||||
# TODO: Load from config using _getdeployconf and print with _debug2
|
||||
# Unclear if this is needed in this case.
|
||||
|
||||
# Define configurable options
|
||||
_openhab_keystore=${DEPLOY_OPENHABIAN_KEYSTORE:-${OPENHAB_USERDATA}/etc/keystore}
|
||||
_openhab_keypass="${DEPLOY_OPENHABIAN_KEYPASS:-openhab}"
|
||||
|
||||
# Take a backup of the old keystore
|
||||
cp "${_openhab_keystore}" "${_openhab_keystore}.bak"
|
||||
|
||||
# Verify Dependencies/PreReqs
|
||||
if ! _exists keytool; then
|
||||
_err "keytool not found, please install keytool"
|
||||
return 1
|
||||
fi
|
||||
if [ ! -w "$_openhab_keystore" ]; then
|
||||
_err "The file $_openhab_keystore is not writable, please change the permission."
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Generate PKCS12 keystore
|
||||
_new_pkcs12="$(_mktemp)"
|
||||
# _toPkcs doesn't support -nodes param
|
||||
if ${ACME_OPENSSL_BIN:-openssl} pkcs12 \
|
||||
-export \
|
||||
-inkey "$_ckey" \
|
||||
-in "$_ccert" \
|
||||
-certfile "$_cca" \
|
||||
-name mykey \
|
||||
-out "$_new_pkcs12" \
|
||||
-nodes -passout "pass:$_openhab_keypass"; then
|
||||
_debug "Successfully created pkcs keystore"
|
||||
else
|
||||
_err "Error generating pkcs12."
|
||||
_err "Please re-run with --debug and report a bug."
|
||||
rm "$_new_pkcs12"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Remove old cert from existing keychain
|
||||
if keytool -delete \
|
||||
-alias mykey \
|
||||
-deststorepass "$_openhab_keypass" \
|
||||
-keystore "$_openhab_keystore"; then
|
||||
_debug "Successfully deleted old key"
|
||||
else
|
||||
_err "Error deleting old key"
|
||||
_err "Please re-run with --debug and report a bug."
|
||||
rm "$_new_pkcs12"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Add new certificate to keychain
|
||||
if keytool -importkeystore \
|
||||
-srckeystore "$_new_pkcs12" \
|
||||
-srcstoretype PKCS12 \
|
||||
-srcstorepass "$_openhab_keypass" \
|
||||
-alias mykey \
|
||||
-destkeystore "$_openhab_keystore" \
|
||||
-deststoretype jks \
|
||||
-deststorepass "$_openhab_keypass" \
|
||||
-destalias mykey; then
|
||||
_debug "Successfully imported key"
|
||||
else
|
||||
_err "Failure when importing key"
|
||||
_err "Please re-run with --debug and report a bug."
|
||||
rm "$_new_pkcs12"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# TODO: Reload/restart openhab to pick up new key
|
||||
# Unifi script passes a reload cmd to handle reloading.
|
||||
# Consider also stopping openhab before touching the keystore
|
||||
|
||||
rm "$_new_pkcs12"
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user