Advertisement
toster_bim

crl

Jul 4th, 2025 (edited)
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 4.51 KB | Software | 0 0
  1. #!/bin/bash
  2.  
  3. # Временная папка для загрузки
  4. TEMP_DIR="/tmp/crl_temp"
  5. mkdir -p "$TEMP_DIR"
  6. cd "$TEMP_DIR" || { echo "❌ Не удалось перейти в $TEMP_DIR"; exit 1; }
  7.  
  8. # Базовые URL
  9. BASE_URL="http://crl.roskazna.ru/crl/"
  10. REESTR_PKI_URL="http://reestr-pki.ru/cdp/"
  11.  
  12. # Массив: имя_файла URL
  13. declare -A FILES=(
  14.   # Корневые сертификаты
  15.   ["Корневой сертификат ГУЦ 2021.cer"]="$BASE_URL""Корневой%20сертификат%20ГУЦ%202021.cer"
  16.   ["Корневой сертификат ГУЦ 2022.cer"]="$BASE_URL""Корневой%20сертификат%20ГУЦ%202022.cer"
  17.   ["Корневой сертификат ГУЦ.crt"]="$BASE_URL""Корневой%20сертификат%20ГУЦ.crt"
  18.   ["Корневой сертификат ГУЦ ГОСТ 2012.crt"]="$BASE_URL""Корневой%20сертификат%20ГУЦ%20ГОСТ%202012.crt"
  19.  
  20.   # CRL для корневых (на reestr-pki.ru)
  21.   ["guc2021.crl"]="$REESTR_PKI_URL""guc2021.crl"
  22.   ["guc2022.crl"]="$REESTR_PKI_URL""guc2022.crl"
  23.   ["guc.crl"]="$REESTR_PKI_URL""guc.crl"
  24.   ["guc_gost12.crl"]="$REESTR_PKI_URL""guc_gost12.crl"
  25.  
  26.   # Подчиненные сертификаты
  27.   ["Подчиненный сертификат УЦ ФК от 04.07.2017.crt"]="$BASE_URL""Подчиненный%20сертификат%20УЦ%20ФК%20от%2004.07.2017.crt"
  28.   ["Подчиненный сертификат УЦ ФК ГОСТ 2012.crt"]="$BASE_URL""Подчиненный%20сертификат%20УЦ%20ФК%20ГОСТ%202012.crt"
  29.   ["Подчиненный сертификат УЦ ФК от 05.02.2020.crt"]="$BASE_URL""Подчиненный%20сертификат%20УЦ%20ФК%20от%2005.02.2020.crt"
  30.   ["ucfk_2021.crt"]="$BASE_URL""ucfk_2021.crt"
  31.   ["ucfk_2022.crt"]="$BASE_URL""ucfk_2022.crt"
  32.   ["ucfk_2022_1.1.crt"]="$BASE_URL""ucfk_2022_1.1.crt"
  33.   ["ucfk_2023.crt"]="$BASE_URL""ucfk_2023.crt"
  34.   ["ucfk_2024.crt"]="$BASE_URL""ucfk_2024.crt"
  35.  
  36.   # CRL для подчиненных
  37.   ["ucfk.crl"]="$BASE_URL""ucfk.crl"
  38.   ["ucfk_gost12.crl"]="$BASE_URL""ucfk_gost12.crl"
  39.   ["ucfk_2020.crl"]="$BASE_URL""ucfk_2020.crl"
  40.   ["ucfk_2021.crl"]="$BASE_URL""ucfk_2021.crl"
  41.   ["ucfk_2022.crl"]="$BASE_URL""ucfk_2022.crl"
  42.   ["ucfk_2022_1.1.crl"]="$BASE_URL""ucfk_2022_1.1.crl"
  43.   ["ucfk_2023.crl"]="$BASE_URL""ucfk_2023.crl"
  44.   ["ucfk_2024.crl"]="$BASE_URL""ucfk_2024.crl"
  45. )
  46.  
  47. # Путь к certmgr
  48. CERTMGR="/opt/cprocsp/bin/amd64/certmgr"
  49.  
  50. # Переменная для отслеживания ошибок
  51. INSTALL_FAILED=0
  52.  
  53. # Функция скачивания
  54. download_file() {
  55.   local filename="$1"
  56.   local url="$2"
  57.   wget --no-check-certificate -O "$filename" "$url" > /dev/null 2>&1
  58.   if [ $? -eq 0 ]; then
  59.     echo "✅ Скачан: $filename"
  60.   else
  61.     echo "❌ Ошибка: Не удалось скачать $filename"
  62.     INSTALL_FAILED=1
  63.   fi
  64. }
  65.  
  66. # Шаг 1: Скачиваем файлы
  67. echo "=== Начинаем загрузку файлов ==="
  68. for file in "${!FILES[@]}"; do
  69.   download_file "$file" "${FILES[$file]}"
  70. done
  71.  
  72. # Шаг 2: Установка через certmgr
  73. echo ""
  74. echo "=== Начинаем установку через certmgr ==="
  75.  
  76. for file in "${!FILES[@]}"; do
  77.   if [[ ! -f "$file" ]]; then
  78.     echo "⚠️ Файл $file не найден — пропущен"
  79.     INSTALL_FAILED=1
  80.     continue
  81.   fi
  82.  
  83.   case "$file" in
  84.     *.cer|*.crt)
  85.       if [[ "$file" == *"Корневой"* ]]; then
  86.         "$CERTMGR" -inst -store mroot -file "$TEMP_DIR/$file"
  87.       else
  88.         "$CERTMGR" -inst -store mca -file "$TEMP_DIR/$file"
  89.       fi
  90.       ;;
  91.     *.crl)
  92.       "$CERTMGR" -inst -store mca -file "$TEMP_DIR/$file" -crl
  93.       ;;
  94.     *)
  95.       echo "⚠️ Неизвестный тип файла: $file"
  96.       INSTALL_FAILED=1
  97.       continue
  98.       ;;
  99.   esac
  100.  
  101.   if [ $? -ne 0 ]; then
  102.     echo "❌ Ошибка при установке файла $file"
  103.     INSTALL_FAILED=1
  104.   fi
  105. done
  106.  
  107. # Шаг 3: Результат установки
  108. echo ""
  109. if [ $INSTALL_FAILED -eq 0 ]; then
  110.   echo "✅ Все файлы успешно скачаны и установлены!"
  111. else
  112.   echo "❌ Ошибка: Не все файлы были успешно скачаны или установлены."
  113.   exit 1
  114. fi
  115.  
  116. # Шаг 4: Очистка временных файлов
  117. echo ""
  118. echo "=== Очистка временных файлов ==="
  119. rm -rf "$TEMP_DIR"/*
  120. rmdir "$TEMP_DIR"
  121.  
  122. exit $INSTALL_FAILED
Tags: crl
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement