Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save antoniordo/0038eb6830e4e4dafd413b61481a812b to your computer and use it in GitHub Desktop.
Save antoniordo/0038eb6830e4e4dafd413b61481a812b to your computer and use it in GitHub Desktop.
Script que instala todos os certificados CA da ICP Brasil
#!/bin/sh
#-----------------------------------------------------------------------------------------------------------------------
# Este script instala todos os certificados CA da ICP Brasil. O mesmo é compatível com POSIX necessitando apenas do
# shell sh e suporta as seguintes distribuições abaixo:
# Arch, Manjaro, Debian, Ubuntu, Mint, Elementary, Fedora, Centos, Amazon Linux, Alpine, Gentoo
#-----------------------------------------------------------------------------------------------------------------------
# Download e execução:
# curl -L -o instalar-certificados-ac-icp-brasil.sh 'http://bit.ly/instalar-certificados-ac-icp-brasil'
# sh instalar-certificados-ac-icp-brasil.sh
# Execução em comando direto:
# sh -c "$(curl -fsSL 'http://bit.ly/instalar-certificados-ac-icp-brasil')"
#-----------------------------------------------------------------------------------------------------------------------
# Licença: MIT
#-----------------------------------------------------------------------------------------------------------------------
set -e
. /etc/os-release
if [ "$(id -u)" -ne 0 ]; then
echo "[ERRO] Este script tem que ser executado como root."
exit 1
fi
URL_DOWNLOAD_CERTIFICADOS='http://acraiz.icpbrasil.gov.br/credenciadas/CertificadosAC-ICP-Brasil/ACcompactado.zip'
DIRETORIO_TEMPORARIO_DOWNLOAD="$(mktemp -d)"
DIRETORIO_CERTIFICADOS_EXTRAIDOS="${DIRETORIO_TEMPORARIO_DOWNLOAD}/extraidos"
ARQUIVO_ZIP_CERTIFICADOS="${DIRETORIO_TEMPORARIO_DOWNLOAD}/certificados.zip"
copiar_certificados_para() {
cp -f "${DIRETORIO_CERTIFICADOS_EXTRAIDOS}"/*.crt "${1}"
}
baixar_certificados() {
curl -s -L --insecure -o "${ARQUIVO_ZIP_CERTIFICADOS}" "${URL_DOWNLOAD_CERTIFICADOS}"
unzip -q "${ARQUIVO_ZIP_CERTIFICADOS}" -d "${DIRETORIO_CERTIFICADOS_EXTRAIDOS}"
}
instalar_arch_compativel() {
copiar_certificados_para /etc/ca-certificates/trust-source/anchors/
trust extract-compat
}
instalar_debian_compativel() {
copiar_certificados_para /usr/local/share/ca-certificates/
update-ca-certificates
}
instalar_fedora_compativel() {
copiar_certificados_para /etc/pki/ca-trust/source/anchors/
update-ca-trust
}
instalar_alpine() {
copiar_certificados_para /usr/local/share/ca-certificates/
update-ca-certificates
}
instalar_gentoo() {
mkdir -p /usr/local/share/ca-certificates/
copiar_certificados_para /usr/local/share/ca-certificates/
update-ca-certificates
}
instalar_certificado_conforme_distro() {
case $ID in
arch) instalar_arch_compativel ;;
manjaro) instalar_arch_compativel ;;
debian) instalar_debian_compativel ;;
ubuntu) instalar_debian_compativel ;;
linuxmint) instalar_debian_compativel ;;
elementary) instalar_debian_compativel ;;
fedora) instalar_fedora_compativel ;;
centos) instalar_fedora_compativel ;;
amzn) instalar_fedora_compativel ;;
alpine) instalar_alpine ;;
gentoo) instalar_gentoo ;;
*)
echo "[ERRO] Distribuição não suportada."
exit 1
;;
esac
}
#Execução
echo "[INFO] Baixando certificados..."
baixar_certificados
echo "[INFO] Instalando certificados..."
instalar_certificado_conforme_distro
echo "[INFO] Concluído."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment