diff --git a/scripts/convert-pfx-cert-format.sh b/scripts/convert-pfx-cert-format.sh new file mode 100755 index 0000000000..c98528b6dc --- /dev/null +++ b/scripts/convert-pfx-cert-format.sh @@ -0,0 +1,34 @@ +#!/bin/bash -ex + +usage() +{ + echo "Usage: $0 -p -k -c -a " + exit 1 +} + +while getopts "p:k:c:a:" opt; do + case $opt in + p) + PFX_FILE=$OPTARG + ;; + k) + SIGNING_KEY=$OPTARG + ;; + c) + SIGNING_CERT=$OPTARG + ;; + a) + CA_CERT=$OPTARG + ;; + *) + usage + ;; + esac +done + + +( [ -z $PFX_FILE ] || [ -z $SIGNING_KEY ] || [ -z $SIGNING_CERT ] || [ -z $CA_CERT ] ) && exit 1 + +openssl pkcs12 -in "${PFX_FILE}" -clcerts -nokeys -nodes -passin pass: | sed -z -e "s/.*\(-----BEGIN CERTIFICATE\)/\1/" > ${SIGNING_CERT} +openssl pkcs12 -in "${PFX_FILE}" -nocerts -nodes -passin pass: | sed -z -e "s/.*\(-----BEGIN PRIVATE KEY\)/\1/" > ${SIGNING_KEY} +openssl pkcs12 -in "${PFX_FILE}" -cacerts -nokeys -nodes -passin pass: | sed -z -e "s/.*\(-----BEGIN CERTIFICATE\)/\1/" > ${CA_CERT}