16
1月
2024
10:58

BAT-файл для обновления списка CRL сертификатов

16 1月 2024 10:58

Под Windows при устаревании списка отозванных сертификатов при проверке электронных подписей в "КриптоАРМ 5" может возникать предупреждение, что список CRL не актуален, поэтому придумал решение.

Введение

CRL - списки досрочно отозванных сертификатов электронно-цифровых подписей ведут удостоверяющие центры.
CRL расшифровывается как Certificate Revocation List. Список отозванных сертификатов — это обязательная часть инфраструктуры PKI (доверенных ключей шифрования), т.к. могла произойти досрочная замена ключа электронной подписи в связи с его поломкой или компрометацией (например, утерей), или смерть владельца. Отзыв сертификата не позволит использовать ЭЦП злоумышленникам.

Список CRL необходимо обновлять достаточно часто — я настроил планировщик на ежедневный запуск обновления утром. Поскольку только при актуальном списке CRL защита от украденных или потерянных, заблокированных чужих ключей эффективна.

Списки CRL:

  • реестр reestr-pki.ru
  • "Ростелеком" rostelecom.ru и company.rt.ru

Задача состоит в загрузке файла с одного из этих сайтов и импорт в группу сертификатов "Отозванные".

Управление сертификатами с помощью графического интерфейса (mmc.exe - оснастка "Сертификаты") не удобна, т.к. требует участия пользователя. BAT-файл запускается по планировщику заданий утром.

Что потребуется для запуска BAT-файла:

1) Командный файл может работать в операционных системах:

  • Windows 7 SP1
  • Windows 10 версии 1507 или выше
  • Windows 11
  • Windows Server 2022, Windows Server 2019, Windows Server 2016, и Windows Server 2012 R2.

2) установленная бесплатная утилита Gnu Wget для Windows - версия wget-1.11.4-1-setup.exe или другая. Gnu Wget можно скачать на сайте SourceForge - Gnu Wget для Windows
3) программа для командной строки CertMgr.exe из пакета Windows SDK. Для простоты запуска я скопировал утилиту CertMgr.exe в папку, где находится командный файл *.BAT.

Подготовка

На жестком диске я создал папку C:\CRL (имя может быть любым, нужно исправить текст BAT-файла) в которую разместил текстовый командный файл и рядом разместил программу CertMgr.exe из пакета Windows SDK.

Рядом с BAT-файлом находятся три списка с URL списков отозванных сертификатов - list1.txt, list2.txt и list3.txt

Содержимое текстового командного BAT-файла для обновления CRL

@echo off
for /f %%G in (list1.txt) DO call :s_subroutine %%G
goto :EOF
:s_subroutine
echo Start: %1
"C:\Program Files (x86)\Wget\bin\wget.exe" %1 --output-document c:\crl\temp.crl
c:\crl\CertMgr.exe /add c:\crl\temp.crl /s CA
echo Finish!
echo:
echo:
del c:\crl\temp.crl
goto :EOF

В цикле for указан входной файл со списком сертификатов: list1.txt)
У меня есть три версии файла - list1.txt, list2.txt и list3.txt

Файлы со списками URL отозванных сертификатов CRL

Содержимое list1.txt:

http://reestr-pki.ru/cdp/guc.crl
http://reestr-pki.ru/cdp/guc_gost12.crl
http://reestr-pki.ru/cdp/vguc1_3.crl
http://reestr-pki.ru/cdp/vguc1_4.crl
http://reestr-pki.ru/cdp/vguc1_5.crl

Содержимое list2.txt:

http://rostelecom.ru/cdp/guc.crl
http://rostelecom.ru/cdp/guc_gost12.crl
http://rostelecom.ru/cdp/vguc1_3.crl
http://rostelecom.ru/cdp/vguc1_4.crl
http://rostelecom.ru/cdp/vguc1_5.crl

Содержимое list3.txt:

http://company.rt.ru/cdp/guc.crl
http://company.rt.ru/cdp/guc_gost12.crl
http://company.rt.ru/cdp/vguc1_3.crl
http://company.rt.ru/cdp/vguc1_4.crl
http://company.rt.ru/cdp/vguc1_5.crl

Где взять CertMgr.exe ?

Диспетчер сертификатов устанавливается вместе с пакетом SDK для Windows 10.

Исполнимый файл находится в Windows 10 по пути
%ProgramFiles(x86)%\Windows Kits\10\bin\10.0.версия_SDK.0\arm64\certmgr.exe.

Страницы для загрузки SDK:

  1. Cтраница загрузок Windows SDK
  2. Windows SDK (10.0.22621) для Windows 11, version 22H2

Документация по CertMgr



相关出版物