Skip to content

Instantly share code, notes, and snippets.

@rac3rx
Forked from dcode/import_dod_certs_mac.sh
Last active April 19, 2022 21:26
Show Gist options
  • Save rac3rx/5b3a2b08298df8d26988f1139e62919c to your computer and use it in GitHub Desktop.
Save rac3rx/5b3a2b08298df8d26988f1139e62919c to your computer and use it in GitHub Desktop.
Install and trust DoD CA certificates on Mac OS X. Tested on Catalina and Mojave. *NOTE*: This should also enable CAC if you didn't override the system drivers.
url='https://public.cyber.mil/pki-pke/pkipke-document-library/'
export CERT_URL=$(curl -s $url | awk -F '"' 'tolower($2) ~ /dod\.zip/ {print $2}')
#bundle=https://dl.dod.cyber.mil/wp-content/uploads/pki-pke/zip/certificates_pkcs7_v5-6_dod.zip
#export CERT_URL='https://dl.dod.cyber.mil/wp-content/uploads/pki-pke/zip/certificates_pkcs7_DoD.zip'
# Download & Extract DoD root certificates
cd ~/Downloads/
/usr/bin/curl -LOJ ${CERT_URL}
/usr/bin/unzip -o $(basename ${CERT_URL})
cd $(/usr/bin/zipinfo -1 $(basename ${CERT_URL}) | /usr/bin/awk -F/ '{ print $1 }' | head -1)
# Convert pem.p7b certs to straight pem and import
for item in *.pem.p7b; do
TOPDIR=$(pwd)
TMPDIR=$(mktemp -d /tmp/$(basename ${item} .p7b).XXXXXX) || exit 1
PEMNAME=$(basename ${item} .p7b)
openssl pkcs7 -print_certs -in ${item} -out "${TMPDIR}/${PEMNAME}"
cd ${TMPDIR}
/usr/bin/split -p '^$' ${PEMNAME}
rm $(ls x* | tail -1)
for cert in x??; do
security -v add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ${cert}
done
cd ${TOPDIR}
rm -rf ${TMPDIR}
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment