#!/bin/bash | |
# | |
# Usage: | |
# ./make_certs.sh test.example.com | |
# | |
# The required input to make_certs.sh is the path to your pfx file without the .pfx prefix | |
# | |
# test.example.com.key | |
# test.example.com.crt (includes ca-certs) | |
# | |
filename=$1 | |
# extract ca-certs | |
echo "> Extracting ca-certs..." | |
openssl pkcs12 -in ${filename}.pfx -nodes -nokeys -cacerts -out ${filename}-ca.crt | |
echo "done!" | |
echo " " | |
# extract key | |
echo "> Extracting key file..." | |
openssl pkcs12 -in ${filename}.pfx -nocerts -out ${filename}.key | |
echo "done!" | |
echo " " | |
# extract crt | |
echo "> Extracting crt..." | |
openssl pkcs12 -in ${filename}.pfx -clcerts -nokeys -out ${filename}.crt | |
echo "> Combining ca-certs with crt file..." | |
# combine ca-certs and cert files | |
cat ${filename}-ca.crt ${filename}.crt > ${filename}-full.crt | |
# remove passphrase from key file | |
echo "> Removing passphrase from keyfile" | |
openssl rsa -in ${filename}.key -out ${filename}.key | |
# clean up | |
rm ${filename}-ca.crt | |
mv ${filename}-full.crt ${filename}.crt | |
echo "done!" | |
echo " " | |
echo "Extraction complete! ?" | |
echo "created files:" | |
echo " ? ${filename}.key" | |
echo " ? ${filename}.crt" | |