cp-tls-inspection-applicati.../check-appliance-bunlde-for-cert.sh
Eliezer Croitoru a9f4b34299 30
2021-07-18 16:56:00 +03:00

52 lines
1.2 KiB
Bash

#!/usr/bin/env bash
#/pfrm2.0/opt/fw1/database/ca_bundle.pem
#/pfrm2.0/config2/fw1/database/ca_bundle.pem
CERT_FILE="$1"
CACERT_FILE="$2"
if [ ! -f "${CERT_FILE}" ];then
echo "${CERT_FILE} doesn't exist or not a file"
exit 1
fi
if [ ! -f "${CACERT_FILE}" ];then
echo "${CACERT_FILE} doesn't exist or not a file"
exit 2
fi
CLEANED_CACERT=$( mktemp )
CLEANED_CERT_FILE=$( mktemp )
TMP_SINGLE_CERTS_DIR=$( mktemp -d )
cat "${CACERT_FILE}" | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > "${CLEANED_CACERT}"
cat "${CERT_FILE}" | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > "${CLEANED_CERT_FILE}"
cd ${TMP_SINGLE_CERTS_DIR} && \
awk 'BEGIN {c=0;} /BEGIN CERT/{c++} { print > "cert." c ".pem"}' < "${CLEANED_CERT_FILE}"
FOUND_MATCH="0"
for cert in $(find ${TMP_SINGLE_CERTS_DIR}/ -type f -regex '.*.pem$' )
do
diff -q "${CLEANED_CERT_FILE}" "${cert}" >/dev/null
if [ "$?" -eq "0" ];then
FOUND_MATCH="1"
echo "Eureka: ${cert}"
break
fi
done
rm -v "${CLEANED_CACERT}"
rm -v "${CLEANED_CERT_FILE}"
rm -vf "${TMP_SINGLE_CERTS_DIR}"
if [ "${FOUND_MATCH}" -eq "1" ];then
exit 0
else
exit 1
fi