2ec840ff63
I've decided to maintain the project myself now, so I've forked it and create a drone pipeline to push image to my registry
63 lines
1.6 KiB
Bash
Executable File
63 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
#
|
|
# Revoke a client certificate
|
|
#
|
|
|
|
if [ "$DEBUG" == "1" ]; then
|
|
set -x
|
|
fi
|
|
|
|
set -e
|
|
|
|
if [ -z "$OPENVPN" ]; then
|
|
export OPENVPN="$PWD"
|
|
fi
|
|
if ! source "$OPENVPN/ovpn_env.sh"; then
|
|
echo "Could not source $OPENVPN/ovpn_env.sh."
|
|
exit 1
|
|
fi
|
|
if [ -z "$EASYRSA_PKI" ]; then
|
|
export EASYRSA_PKI="$OPENVPN/pki"
|
|
fi
|
|
|
|
cn="$1"
|
|
parm="$2"
|
|
|
|
if [ ! -f "$EASYRSA_PKI/private/${cn}.key" ]; then
|
|
echo "Unable to find \"${cn}\", please try again or generate the key first" >&2
|
|
exit 1
|
|
fi
|
|
|
|
revoke_client_certificate(){
|
|
# Download EasyRSA because Ubuntu doesn't have it as a CLI command
|
|
/usr/share/easy-rsa/easyrsa revoke "$1"
|
|
echo "Generating the Certificate Revocation List :"
|
|
/usr/share/easy-rsa/easyrsa gen-crl
|
|
cp -f "$EASYRSA_PKI/crl.pem" "$OPENVPN/crl.pem"
|
|
chmod 644 "$OPENVPN/crl.pem"
|
|
}
|
|
|
|
remove_files(){
|
|
rm -v "$EASYRSA_PKI/issued/${1}.crt"
|
|
rm -v "$EASYRSA_PKI/private/${1}.key"
|
|
rm -v "$EASYRSA_PKI/reqs/${1}.req"
|
|
}
|
|
|
|
case "$parm" in
|
|
"remove")
|
|
revoke_client_certificate "$cn"
|
|
remove_files "$cn"
|
|
;;
|
|
"" | "keep")
|
|
revoke_client_certificate "$cn"
|
|
;;
|
|
*)
|
|
echo "When revoking a client certificate, this script let you choose if you want to remove the corresponding crt, key and req files." >&2
|
|
echo "Pease note that the removal of those files is required if you want to generate a new client certificate using the revoked certificate's CN." >&2
|
|
echo " 1. keep (default): Keep the files." >&2
|
|
echo " 2. remove: Remove the files." >&2
|
|
echo "Please specify one of those options as second parameter." >&2
|
|
;;
|
|
esac
|