v-list-sys-vesta-ssl 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. #!/bin/bash
  2. # info: list vesta ssl certificate
  3. # options: [FORMAT]
  4. #
  5. # The function of obtaining vesta ssl files.
  6. #----------------------------------------------------------#
  7. # Variable&Function #
  8. #----------------------------------------------------------#
  9. # Argument definition
  10. format=${1-shell}
  11. # Includes
  12. source $VESTA/func/main.sh
  13. # JSON list function
  14. json_list() {
  15. echo '{'
  16. echo -e "\t\"VESTA\": {"
  17. echo " \"CRT\": \"$crt\","
  18. echo " \"KEY\": \"$key\","
  19. echo " \"CA\": \"$ca\","
  20. echo " \"SUBJECT\": \"$subj\","
  21. echo " \"ALIASES\": \"$alt_dns\","
  22. echo " \"NOT_BEFORE\": \"$before\","
  23. echo " \"NOT_AFTER\": \"$after\","
  24. echo " \"SIGNATURE\": \"$signature\","
  25. echo " \"PUB_KEY\": \"$pub_key\","
  26. echo " \"ISSUER\": \"$issuer\""
  27. echo -e "\t}\n}"
  28. }
  29. # SHELL list function
  30. shell_list() {
  31. if [ ! -z "$crt" ]; then
  32. echo -e "$crt"
  33. fi
  34. if [ ! -z "$key" ]; then
  35. echo -e "\n$key"
  36. fi
  37. if [ ! -z "$crt" ]; then
  38. echo
  39. echo
  40. echo "SUBJECT: $subj"
  41. if [ ! -z "$alt_dns" ]; then
  42. echo "ALIASES: ${alt_dns//,/ }"
  43. fi
  44. echo "VALID FROM: $before"
  45. echo "VALID TIL: $after"
  46. echo "SIGNATURE: $signature"
  47. echo "PUB_KEY: $pub_key"
  48. echo "ISSUER: $issuer"
  49. fi
  50. }
  51. # PLAIN list function
  52. plain_list() {
  53. if [ ! -z "$crt" ]; then
  54. echo -e "$crt"
  55. fi
  56. if [ ! -z "$key" ]; then
  57. echo -e "\n$key"
  58. fi
  59. if [ ! -z "$ca" ]; then
  60. echo -e "\n$ca"
  61. fi
  62. if [ ! -z "$crt" ]; then
  63. echo "$subj"
  64. echo "${alt_dns//,/ }"
  65. echo "$before"
  66. echo "$after"
  67. echo "$signature"
  68. echo "$pub_key"
  69. echo "$issuer"
  70. fi
  71. }
  72. # CSV list function
  73. csv_list() {
  74. echo -n "CRT,KEY,CA,SUBJECT,ALIASES,NOT_BEFORE,NOT_AFTER,SIGNATURE,"
  75. echo "PUB_KEY,ISSUER"
  76. echo -n "\"$crt\",\"$key\",\"$ca\",\"$subj\",\"${alt_dns//,/ }\","
  77. echo "\"$before\",\"$after\",\"$signature\",\"$pub_key\",\"$issuer\""
  78. }
  79. #----------------------------------------------------------#
  80. # Verifications #
  81. #----------------------------------------------------------#
  82. #----------------------------------------------------------#
  83. # Action #
  84. #----------------------------------------------------------#
  85. # Parsing SSL certificate
  86. crt=$(cat $VESTA/ssl/certificate.crt |sed ':a;N;$!ba;s/\n/\\n/g')
  87. key=$(cat $VESTA/ssl/certificate.key |sed ':a;N;$!ba;s/\n/\\n/g')
  88. # Parsing SSL certificate details without CA
  89. info=$(openssl x509 -text -in $VESTA/ssl/certificate.crt)
  90. subj=$(echo "$info" |grep Subject: |cut -f 2 -d =)
  91. before=$(echo "$info" |grep Before: |sed -e "s/.*Before: //")
  92. after=$(echo "$info" |grep "After :" |sed -e "s/.*After : //")
  93. signature=$(echo "$info" |grep "Algorithm:" |head -n1 )
  94. signature=$(echo "$signature"| sed -e "s/.*Algorithm: //")
  95. pub_key=$(echo "$info" |grep Public-Key: |cut -f2 -d \( | tr -d \))
  96. issuer=$(echo "$info" |grep Issuer: |sed -e "s/.*Issuer: //")
  97. alt_dns=$(echo "$info" |grep DNS |sed -e 's/DNS:/\n/g' |tr -d ',')
  98. alt_dns=$(echo "$alt_dns" |tr -d ' ' |sed -e "/^$/d")
  99. alt_dns=$(echo "$alt_dns" |sed -e ':a;N;$!ba;s/\n/,/g')
  100. # Listing data
  101. case $format in
  102. json) json_list ;;
  103. plain) plain_list ;;
  104. csv) csv_list ;;
  105. shell) shell_list ;;
  106. esac
  107. #----------------------------------------------------------#
  108. # Vesta #
  109. #----------------------------------------------------------#
  110. exit