Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Временная папка для загрузки
- TEMP_DIR="/tmp/crl_temp"
- mkdir -p "$TEMP_DIR"
- cd "$TEMP_DIR" || { echo "❌ Не удалось перейти в $TEMP_DIR"; exit 1; }
- # Базовые URL
- BASE_URL="http://crl.roskazna.ru/crl/"
- REESTR_PKI_URL="http://reestr-pki.ru/cdp/"
- # Массив: имя_файла URL
- declare -A FILES=(
- # Корневые сертификаты
- ["Корневой сертификат ГУЦ 2021.cer"]="$BASE_URL""Корневой%20сертификат%20ГУЦ%202021.cer"
- ["Корневой сертификат ГУЦ 2022.cer"]="$BASE_URL""Корневой%20сертификат%20ГУЦ%202022.cer"
- ["Корневой сертификат ГУЦ.crt"]="$BASE_URL""Корневой%20сертификат%20ГУЦ.crt"
- ["Корневой сертификат ГУЦ ГОСТ 2012.crt"]="$BASE_URL""Корневой%20сертификат%20ГУЦ%20ГОСТ%202012.crt"
- # CRL для корневых (на reestr-pki.ru)
- ["guc2021.crl"]="$REESTR_PKI_URL""guc2021.crl"
- ["guc2022.crl"]="$REESTR_PKI_URL""guc2022.crl"
- ["guc.crl"]="$REESTR_PKI_URL""guc.crl"
- ["guc_gost12.crl"]="$REESTR_PKI_URL""guc_gost12.crl"
- # Подчиненные сертификаты
- ["Подчиненный сертификат УЦ ФК от 04.07.2017.crt"]="$BASE_URL""Подчиненный%20сертификат%20УЦ%20ФК%20от%2004.07.2017.crt"
- ["Подчиненный сертификат УЦ ФК ГОСТ 2012.crt"]="$BASE_URL""Подчиненный%20сертификат%20УЦ%20ФК%20ГОСТ%202012.crt"
- ["Подчиненный сертификат УЦ ФК от 05.02.2020.crt"]="$BASE_URL""Подчиненный%20сертификат%20УЦ%20ФК%20от%2005.02.2020.crt"
- ["ucfk_2021.crt"]="$BASE_URL""ucfk_2021.crt"
- ["ucfk_2022.crt"]="$BASE_URL""ucfk_2022.crt"
- ["ucfk_2022_1.1.crt"]="$BASE_URL""ucfk_2022_1.1.crt"
- ["ucfk_2023.crt"]="$BASE_URL""ucfk_2023.crt"
- ["ucfk_2024.crt"]="$BASE_URL""ucfk_2024.crt"
- # CRL для подчиненных
- ["ucfk.crl"]="$BASE_URL""ucfk.crl"
- ["ucfk_gost12.crl"]="$BASE_URL""ucfk_gost12.crl"
- ["ucfk_2020.crl"]="$BASE_URL""ucfk_2020.crl"
- ["ucfk_2021.crl"]="$BASE_URL""ucfk_2021.crl"
- ["ucfk_2022.crl"]="$BASE_URL""ucfk_2022.crl"
- ["ucfk_2022_1.1.crl"]="$BASE_URL""ucfk_2022_1.1.crl"
- ["ucfk_2023.crl"]="$BASE_URL""ucfk_2023.crl"
- ["ucfk_2024.crl"]="$BASE_URL""ucfk_2024.crl"
- )
- # Путь к certmgr
- CERTMGR="/opt/cprocsp/bin/amd64/certmgr"
- # Переменная для отслеживания ошибок
- INSTALL_FAILED=0
- # Функция скачивания
- download_file() {
- local filename="$1"
- local url="$2"
- wget --no-check-certificate -O "$filename" "$url" > /dev/null 2>&1
- if [ $? -eq 0 ]; then
- echo "✅ Скачан: $filename"
- else
- echo "❌ Ошибка: Не удалось скачать $filename"
- INSTALL_FAILED=1
- fi
- }
- # Шаг 1: Скачиваем файлы
- echo "=== Начинаем загрузку файлов ==="
- for file in "${!FILES[@]}"; do
- download_file "$file" "${FILES[$file]}"
- done
- # Шаг 2: Установка через certmgr
- echo ""
- echo "=== Начинаем установку через certmgr ==="
- for file in "${!FILES[@]}"; do
- if [[ ! -f "$file" ]]; then
- echo "⚠️ Файл $file не найден — пропущен"
- INSTALL_FAILED=1
- continue
- fi
- case "$file" in
- *.cer|*.crt)
- if [[ "$file" == *"Корневой"* ]]; then
- "$CERTMGR" -inst -store mroot -file "$TEMP_DIR/$file"
- else
- "$CERTMGR" -inst -store mca -file "$TEMP_DIR/$file"
- fi
- ;;
- *.crl)
- "$CERTMGR" -inst -store mca -file "$TEMP_DIR/$file" -crl
- ;;
- *)
- echo "⚠️ Неизвестный тип файла: $file"
- INSTALL_FAILED=1
- continue
- ;;
- esac
- if [ $? -ne 0 ]; then
- echo "❌ Ошибка при установке файла $file"
- INSTALL_FAILED=1
- fi
- done
- # Шаг 3: Результат установки
- echo ""
- if [ $INSTALL_FAILED -eq 0 ]; then
- echo "✅ Все файлы успешно скачаны и установлены!"
- else
- echo "❌ Ошибка: Не все файлы были успешно скачаны или установлены."
- exit 1
- fi
- # Шаг 4: Очистка временных файлов
- echo ""
- echo "=== Очистка временных файлов ==="
- rm -rf "$TEMP_DIR"/*
- rmdir "$TEMP_DIR"
- exit $INSTALL_FAILED
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement