create_client.sh 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #!/bin/bash
  2. if [ $# -ne 2 ]; then
  3. echo "Usage: $0 <rsa_dir> <username>"
  4. exit 1
  5. fi
  6. RSA_DIR="$1"
  7. USERNAME="$2"
  8. ORIGINAL_USER="$SUDO_USER"
  9. if [ -z "${ORIGINAL_USER}" ]; then
  10. ORIGINAL_USER='www-data'
  11. fi
  12. # Проверяем существование директории PKI
  13. if [ ! -d "$RSA_DIR" ]; then
  14. echo "PKI directory not found: $RSA_DIR"
  15. exit 1
  16. fi
  17. # Проверяем наличие easyrsa
  18. if [ ! -f "$RSA_DIR/easyrsa" ]; then
  19. echo "easyrsa not found in $RSA_DIR"
  20. exit 1
  21. fi
  22. # Проверяем, не существует ли уже пользователь
  23. if [ -f "$RSA_DIR/pki/index.txt" ] && grep -q "CN=$USERNAME" "$RSA_DIR/pki/index.txt"; then
  24. echo "User $USERNAME already exists"
  25. exit 1
  26. fi
  27. # Переходим в директорию PKI и создаем клиента
  28. cd "$RSA_DIR" || exit 1
  29. # Генерируем клиентский ключ и сертификат в batch mode (без подтверждений)
  30. ./easyrsa --batch build-client-full "$USERNAME" nopass
  31. if [ $? -eq 0 ]; then
  32. echo "User $USERNAME created successfully"
  33. chown nobody:${ORIGINAL_USER} -R "$RSA_DIR/pki/issued/"
  34. chmod 640 "${RSA_DIR}"/pki/issued/*.crt
  35. exit 0
  36. else
  37. echo "Failed to create user $USERNAME"
  38. exit 1
  39. fi