1

Тема: Автоматизация обновления СОС при отсутствии прямого доступа к ним

Доброго дня!
Есть сервер, который из-за политики безопасности ограничен в доступе к интернету(точкам публикации СОС).
Пытаюсь автоматизирировать обновление СОС с помощью этой команды
zpki1tst.exe  -manage -import %%f -crl
и (2-й вариант с помощью COM)
вот так
vcert.Initialize("MY", Init_Flag_t.Flag_Init_Nocrlupdate);
                var importParams = new ImportParam();
                importParams.flag = ImportParamFlag_t.Flag_Import_Crl;
                vcert.ImportFile(importParams, crlFile);

Если при импорте справочник находится в актуальном состоянии, то все отрабатывает,
но если вовремя импрот не сделан, то получаю ошибку

System.Runtime.InteropServices.COMException (0xE0700034): Exception from HRESULT: 0xE0700034
   at VCERTCOMLib.IVCERT.Initialize(String profile, Init_Flag_t flag)
   at ValidataImportCRL.Program.Main(String[] args)
[ERRCODE=-529530828 (Certificate verification error)]

Результат: Certificate verification error   (E0700034).

Если же зайти в справочник вручную, то он сразу предлагает сделать импорт СОС и после этого все ОК.
Программно этого можно добиться?

2

Re: Автоматизация обновления СОС при отсутствии прямого доступа к ним

Попробуйте использовать флаг
Flag_Init_UseAiaCdp "Разрешить доступ к точкам AIA и CDP для загрузки сертификатов промежуточных ЦС и СОС при построении цепочек;"
Тогда в случае наличие СОС в точке распространения он будет использован для построения цепочки при проверке.

3

Re: Автоматизация обновления СОС при отсутствии прямого доступа к ним

Местоположение списков отзывов (Certificate Revocation List (CRL)) и сертификатов УЦ задается параметрами CRL Distribution Points (CDP) и Authority Information Access (AIA) соответственно.

Это и есть проблема: на целевой машине отсутствует доступ к AIA и CDP.
А файлы *.crl помещаются на ПК путем копирования из локальной сети и импортируются вручную.
Так вот тестовая утилита не может импортировать СОС, если сертификат не прошел проверку по причине
просроченных СОС. Однако, т.к. Справочник все же позволяет при старте импортировать в этом случае обновленные
СОС, то видимо это может быть возможно и без использования UI.

4

Re: Автоматизация обновления СОС при отсутствии прямого доступа к ним

Тогда можно попробовать перенаправление точек распространения.
Чтобы замена URI в Справочнике сертификатов работала, в настройках Справочника сертификатов должен быть отмечен чекбокс «Использовать точки распространения СОС (CDP) и информацию о доступе к центру (AIA) при построении цепочек».
При замене нескольких точек распространения номерация точек распространения должна начинаться с 0 и быть непрерывной (0, 1, 2, 3 …).
В Вашем случае Flag_Init_UseAiaCdp
Плюс запись в реестре

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\VALIDATA\zpki\Parameters]
"PkiUriCDPExternal0"="http://rostelecom.ru/cdp/guc.crl"
"PkiUriCDPInternal0"="http://deime/CDP/guc.0.crl"
"PkiUriCDPExternal1"="http://reestr-pki.ru/cdp/guc.crl"
"PkiUriCDPInternal1"="http://deime/CDP/guc.crl"

PkiUriCDPExternal0 внешняя ссылка меняется на PkiUriCDPInternal0 (внутренний сервер)