-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrevoke.sh
More file actions
39 lines (28 loc) · 958 Bytes
/
revoke.sh
File metadata and controls
39 lines (28 loc) · 958 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/bin/bash
# === Revoca y elimina certificados VPN de clientes ===
# Compatible con estructura auto-vpn.sh y webhook.py
set -euo pipefail
CLIENT_NAME="$1"
EASYRSA_DIR="/root/openvpn-ca"
CLIENTS_DIR="/root/clients-configs"
CRL_PATH="/etc/openvpn/crl.pem"
if [[ -z "$CLIENT_NAME" ]]; then
echo "[!] Debes especificar el nombre del cliente."
exit 1
fi
echo "[*] Revocando cliente: $CLIENT_NAME"
cd "$EASYRSA_DIR"
# Revocar el certificado
./easyrsa --batch revoke "$CLIENT_NAME"
# Regenerar la CRL
./easyrsa gen-crl
# Mover la CRL al directorio de OpenVPN
cp "$EASYRSA_DIR/pki/crl.pem" "$CRL_PATH"
chown nobody:nogroup "$CRL_PATH"
chmod 644 "$CRL_PATH"
# Borrar archivos del cliente
rm -f "$EASYRSA_DIR/pki/reqs/${CLIENT_NAME}.req"
rm -f "$EASYRSA_DIR/pki/issued/${CLIENT_NAME}.crt"
rm -f "$EASYRSA_DIR/pki/private/${CLIENT_NAME}.key"
rm -f "$CLIENTS_DIR/${CLIENT_NAME}.ovpn"
echo "✅ Cliente '$CLIENT_NAME' revocado y archivos eliminados."