You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
2.0 KiB
61 lines
2.0 KiB
#!/usr/bin/env bash
|
|
|
|
# Simple script to deploy certificates for Weechat relay servers
|
|
#
|
|
# Configuration:
|
|
# export WEECHAT_PEM (or set in access.conf) to the PEM file you have your weechat client
|
|
# set to load.
|
|
# Optionally configure WEECHAT_HOME if you would like to attempt to reload the certificate
|
|
# on a successful deploy.
|
|
# This deploy script attempts to guess sane defaults in the absence of either
|
|
|
|
# If you would like this script to automatically reload this certificate, you must ensure
|
|
# weechat is configured with plugins.var.fifo.fifo = on
|
|
|
|
# Usage Example: acme.sh --renew --deploy --deploy-hook weechat -d weechat.example.com --force
|
|
|
|
#returns 0 means success, otherwise error.
|
|
|
|
######## Public functions #####################
|
|
|
|
#domain keyfile certfile cafile fullchain
|
|
weechat_deploy() {
|
|
_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"
|
|
|
|
_info "Deploying $_cdomain to weechat"
|
|
if [ -z "$WEECHAT_HOME" ]; then
|
|
_info "WEECHAT_HOME not set, defaulting to ${HOME}/.weechat"
|
|
WEECHAT_HOME="${HOME}/.weechat"
|
|
fi
|
|
if [ -z "$WEECHAT_PEM" ]; then
|
|
_info "WEECHAT_PEM not set, defaulting to ${HOME}/.weechat/ssl/relay.pem"
|
|
WEECHAT_PEM="${HOME}/.weechat/ssl/relay.pem"
|
|
fi
|
|
if [ -w $WEECHAT_PEM ]; then
|
|
_info "$WEECHAT_PEM exists and is writable, backing up and overwriting"
|
|
cp $WEECHAT_PEM $WEECHAT_PEM.bak
|
|
cat $_ckey $_cfullchain > $WEECHAT_PEM
|
|
_info "Deployed $_cdomain to weechat"
|
|
_debug "Attempting to issue /relay sslcertky to weechat via fifo"
|
|
for fifo in $WEECHAT_HOME/weechat_fifo_*
|
|
do
|
|
_info "Issuing reload to weechat via $fifo"
|
|
printf '%b' '*/relay sslcertkey\n' > "$fifo"
|
|
done
|
|
exit 0
|
|
else
|
|
_err "$WEECHAT_PEM does not exist or is not writable. If this is a first run \
|
|
please issue \'touch $WEECHAT_PEM\' and retry."
|
|
exit 1
|
|
fi
|
|
}
|