v-list-web-domain-ssl 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #!/bin/bash
  2. # info: list web domain ssl certificate
  3. # options: user domain [format]
  4. #
  5. # The function of obtaining domain ssl files.
  6. #----------------------------------------------------------#
  7. # Variable&Function #
  8. #----------------------------------------------------------#
  9. # Argument defenition
  10. user=$1
  11. domain=$2
  12. format=${3-shell}
  13. # Includes
  14. source $VESTA/func/main.sh
  15. # Json function
  16. json_list_ssl() {
  17. i='1' # iterator
  18. echo '{'
  19. echo -e "\t\"$domain\": {"
  20. echo " \"CRT\": \"$crt\","
  21. echo " \"KEY\": \"$key\","
  22. echo " \"CA\": \"$ca\""
  23. echo -e "\t}\n}"
  24. }
  25. # Shell function
  26. shell_list_ssl() {
  27. if [ ! -z "$crt" ]; then
  28. echo -e "$crt"
  29. fi
  30. if [ ! -z "$key" ]; then
  31. echo -e "\n$key"
  32. fi
  33. if [ ! -z "$ca" ]; then
  34. echo -e "\n$ca"
  35. fi
  36. }
  37. #----------------------------------------------------------#
  38. # Verifications #
  39. #----------------------------------------------------------#
  40. check_args '2' "$#" 'user domain [format]'
  41. is_object_valid 'user' 'USER' "$user"
  42. is_object_valid 'web' 'DOMAIN' "$domain"
  43. #----------------------------------------------------------#
  44. # Action #
  45. #----------------------------------------------------------#
  46. if [ -e "$USER_DATA/ssl/$domain.crt" ]; then
  47. crt=$(cat $USER_DATA/ssl/$domain.crt |sed -e ':a;N;$!ba;s/\n/\\n/g' )
  48. fi
  49. if [ -e "$USER_DATA/ssl/$domain.key" ]; then
  50. key=$(cat $USER_DATA/ssl/$domain.key |sed -e ':a;N;$!ba;s/\n/\\n/g' )
  51. fi
  52. if [ -e "$USER_DATA/ssl/$domain.ca" ]; then
  53. ca=$(cat $USER_DATA/ssl/$domain.ca |sed -e ':a;N;$!ba;s/\n/\\n/g' )
  54. fi
  55. # Listing domains
  56. case $format in
  57. json) json_list_ssl ;;
  58. plain) nohead=1; shell_list_ssl ;;
  59. shell) shell_list_ssl ;;
  60. *) check_args '1' '0' '[format]'
  61. esac
  62. #----------------------------------------------------------#
  63. # Vesta #
  64. #----------------------------------------------------------#
  65. exit