v_change_web_domain_sslcert 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #!/bin/bash
  2. # info: changing domain ssl certificate
  3. #----------------------------------------------------------#
  4. # Variable&Function #
  5. #----------------------------------------------------------#
  6. # Argument defenition
  7. user=$1
  8. domain=$(idn -t --quiet -u "$2" )
  9. domain_idn=$(idn -t --quiet -a "$domain")
  10. ssl_dir=$3
  11. # Importing variables
  12. source $VESTA/conf/vars.conf
  13. source $V_CONF/vesta.conf
  14. source $V_FUNC/shared.func
  15. source $V_FUNC/domain.func
  16. #----------------------------------------------------------#
  17. # Verifications #
  18. #----------------------------------------------------------#
  19. # Checking arg number
  20. check_args '3' "$#" 'user domain certificate'
  21. # Checking argument format
  22. format_validation 'user' 'domain' 'ssl'
  23. # Checking web system is enabled
  24. is_system_enabled 'web'
  25. # Checking user
  26. is_user_valid
  27. # Checking user is active
  28. is_user_suspended
  29. # Checking domain exist
  30. is_web_domain_valid
  31. # Checking domain is not suspened
  32. is_domain_suspended 'web'
  33. # Check SSL is added
  34. is_web_domain_value_exist '$SSL'
  35. # Checking ssl certificate
  36. is_web_domain_cert_valid
  37. #----------------------------------------------------------#
  38. # Action #
  39. #----------------------------------------------------------#
  40. # Deleting old certificate
  41. tmpdir=$(mktemp -p $V_HOME/$user/web/$domain/private -d)
  42. rm -f $V_HOME/$user/conf/ssl.$domain.*
  43. mv $V_USERS/$user/ssl/$domain.* $tmpdir
  44. chown -R $user:$user $tmpdir
  45. # Adding new certificate to user data directory
  46. cp -f $ssl_dir/$domain.crt $V_USERS/$user/ssl/$domain.crt
  47. cp -f $ssl_dir/$domain.key $V_USERS/$user/ssl/$domain.key
  48. cp -f $ssl_dir/$domain.crt $V_USERS/$user/ssl/$domain.pem
  49. if [ -e "$ssl_dir/$domain.ca" ]; then
  50. cp -f $ssl_dir/$domain.ca $V_USERS/$user/ssl/$domain.ca
  51. cat $V_USERS/$user/ssl/$domain.ca >> $V_USERS/$user/ssl/$domain.pem
  52. fi
  53. # Adding new certificate to user dir
  54. cp -f $V_USERS/$user/ssl/$domain.crt $V_HOME/$user/conf/ssl.$domain.crt
  55. cp -f $V_USERS/$user/ssl/$domain.key $V_HOME/$user/conf/ssl.$domain.key
  56. cp -f $V_USERS/$user/ssl/$domain.pem $V_HOME/$user/conf/ssl.$domain.pem
  57. if [ -e "$V_USERS/$user/ssl/$domain.ca" ]; then
  58. cp -f $V_USERS/$user/ssl/$domain.ca $V_HOME/$user/conf/ssl.$domain.ca
  59. fi
  60. #----------------------------------------------------------#
  61. # Vesta #
  62. #----------------------------------------------------------#
  63. # Adding task to the vesta pipe
  64. restart_schedule 'web'
  65. # Logging
  66. log_history "$V_EVENT" "$V_SCRIPT $user $domain $tmpdir"
  67. log_event 'system' "$V_EVENT"
  68. exit