41 lines
1.7 KiB
Bash
Executable File
41 lines
1.7 KiB
Bash
Executable File
#!/bin/sh
|
|
set -e
|
|
|
|
CA_CRT="/usr/local/share/ca-certificates/bnhmeijer/bnhmeijer-root-ca.crt"
|
|
CA_NICKNAME="Bnhmeijer Homelab Root CA"
|
|
|
|
case "$1" in
|
|
configure|abort-upgrade)
|
|
# 1. Update OS system trust store
|
|
if command -v update-ca-certificates >/dev/null 2>&1; then
|
|
echo "Bijwerken van systeem trusted CA certificaten..."
|
|
update-ca-certificates >/dev/null 2>&1 || true
|
|
fi
|
|
|
|
# 2. Link Firefox distribution policies if application dir exists
|
|
if [ -d /usr/lib/firefox ]; then
|
|
mkdir -p /usr/lib/firefox/distribution
|
|
if [ ! -e /usr/lib/firefox/distribution/policies.json ] || [ -L /usr/lib/firefox/distribution/policies.json ]; then
|
|
ln -sf /etc/firefox/policies/policies.json /usr/lib/firefox/distribution/policies.json
|
|
fi
|
|
fi
|
|
|
|
# 3. Import into NSS databases if certutil is installed
|
|
if command -v certutil >/dev/null 2>&1 && [ -f "$CA_CRT" ]; then
|
|
for user_home in /root $(awk -F: '$3 >= 1000 && $3 < 60000 {print $6}' /etc/passwd 2>/dev/null); do
|
|
user_name=$(stat -c '%U' "$user_home" 2>/dev/null || echo "root")
|
|
for pki_dir in "$user_home/.pki/nssdb" "$user_home/.local/share/pki/nssdb"; do
|
|
if [ -d "$pki_dir" ]; then
|
|
certutil -d "sql:$pki_dir" -A -t "TC,," -n "$CA_NICKNAME" -i "$CA_CRT" >/dev/null 2>&1 || true
|
|
chown -R "$user_name:" "$pki_dir" 2>/dev/null || true
|
|
fi
|
|
done
|
|
done
|
|
fi
|
|
|
|
echo "Bnhmeijer Root CA is geconfigureerd voor OS, Firefox en Chromium/Chrome."
|
|
echo "Herstart actieve browsers om de nieuwe certificaatvertrouwenslijst te laden."
|
|
;;
|
|
esac
|
|
exit 0
|