| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- is_cert_free() {
- # Defining path
- user_cert="$V_USERS/$user/cert/$cert"
- # Checking file existance
- if [ -e "$user_cert.crt" ] || [ -e "$user_cert.key" ]; then
- echo "Error: certificate exist"
- log_event 'debug' "$E_CERT_EXIST $V_EVENT"
- exit $E_CERT_EXIST
- fi
- }
- is_cert_valid() {
- path="$1"
- # Checking file existance
- if [ ! -e "$path/$cert.crt" ] || [ ! -e "$path/$cert.key" ]; then
- echo "Error: certificate not exist"
- log_event 'debug' "$E_CERT_NOTEXIST $V_EVENT"
- exit $E_CERT_NOTEXIST
- fi
- # Checking crt file
- crt=$(openssl verify "$path/$cert.crt" 2>/dev/null|tail -n 1|grep -w 'OK')
- if [ -z "$crt" ]; then
- echo "Error: certificate invalid"
- log_event 'debug' "$E_CERT_INVALID $V_EVENT"
- exit $E_CERT_INVALID
- fi
- # Checking key file
- key=$(openssl rsa -in "$path/$cert.key" -check 2>/dev/null|\
- head -n1|grep -w 'ok')
- if [ -z "$key" ]; then
- echo "Error: key invalid"
- log_event 'debug' "$E_KEY_INVALID $V_EVENT"
- exit $E_KEY_INVALID
- fi
- # FIXME we should run server on free port
- # Checking server
- cmd="openssl s_server -quiet -cert $path/$cert.crt -key $path/$cert.key"
- $cmd &
- # Defining pid
- pid=$!
- # Sleep 1 second
- sleep 1
- # Disown background process
- disown > /dev/null 2>&1
- # Killing ssl server
- kill $pid > /dev/null 2>&1
- # Checking result
- result=$?
- if [ "$result" -ne '0' ]; then
- echo "Error: certificate key pair invalid"
- log_event 'debug' "$E_CERTKEY_INVALID $V_EVENT"
- exit $E_CERTKEY_INVALID
- fi
- }
- is_cert_used() {
- # Parsing config
- check_cert=$(grep "SSL_CERT='$cert'" $V_USERS/$user/web_domains.conf)
- # Checking result
- if [ ! -z "$check_cert" ]; then
- echo "Error: certificate used"
- log_event 'debug' "$E_CERT_USED $V_EVENT"
- exit $E_CERT_USED
- fi
- }
- cert_json_list() {
- # Definigng variables
- i='1' # iterator
- j='1' # iterator
- end=$(($limit + $offset)) # last string
- # Print top bracket
- echo '['
- # Checking certificates number
- last=$(ls $V_USERS/$user/cert/|grep '.crt' | wc -l)
- # Listing files by mask
- for cert in $(ls $V_USERS/$user/cert/|grep '.crt'); do
- # Checking offset and limit
- if [ "$i" -ge "$offset" ] && [ "$i" -lt "$end" ] && [ "$offset" -gt 0 ]
- then
- if [ "$i" -ne "$last" ] && [ "$j" -ne "$limit" ]; then
- echo -e "\t\"${cert//.crt/}\","
- else
- echo -e "\t\"${cert//.crt/}\""
- fi
- j=$(($j + 1))
- fi
- i=$(($i + 1))
- done
- # Printing bottom bracket
- echo -e "]"
- }
- cert_shell_list() {
- i='1' # iterator
- end=$(($limit + $offset)) # last string
- # Print brief info
- echo "Certificate"
- echo "----------"
- # Listing files by mask
- for cert in $(ls $V_USERS/$user/cert/|grep '.crt'); do
- # Checking offset and limit
- if [ "$i" -ge "$offset" ] && [ "$i" -lt "$end" ] && [ "$offset" -gt 0 ]
- then
- # Print result
- echo "${cert//.crt/}"
- fi
- i=$(($i + 1))
- done
- }
|