Рабочая станция с установленным криптопровайдером (КриптоПро) без настроенных сертификатов напоминает автомобиль с полным баком, но без ключей зажигания: двигатель есть, ехать некуда. В экосистеме 1С, ЭДО и корпоративных шлюзах именно связка «закрытый ключ + сертификат + доверенные УЦ» открывает доступ к юридически значимым операциям. Ниже — сжатый, но полный маршрут настройки в GNU/Linux с акцентом на дистрибутивы семейства Debian (Astra Linux, Ubuntu), где CSP устанавливают из deb-пакетов amd64.
Настройка сертификатов КриптоПро на Linux сводится к трём последовательным шагам: (1) импорт корневого и промежуточных УЦ (certmgr -inst -cert ... -store uRoot/CA), (2) установка личного ключа — из PFX-файла, каталога KEY или токена — с привязкой к хранилищу uMy, (3) проверка цепочки доверия и тестовая подпись через cryptcp. Все утилиты лежат в /opt/cprocsp/bin/amd64/; команды на Astra Linux и Ubuntu идентичны — различаются только политики ОС и источник установки CSP. Главная ловушка: путаница между пользовательским (uMy/uRoot) и системным (my/root) хранилищем — прикладное ПО вроде 1С не находит сертификат, если он ушёл в «Другие пользователи» вместо «Личное».
Утилиты располагаются в /opt/cprocsp/bin/amd64/. Разрядность системы проверьте командой uname -m: для x86_64 используйте каталог amd64, для i686/i386 — ia32. Версию CSP смотрите через cpconfig -license -view или список установленных пакетов. Примеры рассчитаны на КриптоПро CSP 5.x. Команды certmgr, csptest и cryptcp на Astra Linux и Ubuntu совпадают; различаются, как правило, политики безопасности ОС и способ установки deb-пакетов.
1. Базовые понятия и логика настройки
Инфраструктура открытых ключей на Linux не использует системное хранилище Windows. КриптоПро CSP создаёт собственные логические хранилища: личные ключи пользователя, якорные центры доверия, промежуточные издатели. Открытый ключ может жить отдельно от закрытого — типичный случай после выпуска сертификата УЦ, когда запрос на сертификат (CSR) сгенерирован локально.
Маршрут настройки с нуля обычно выглядит так:
- Проверить лицензию и видимость утилит CSP.
- Импортировать корневой и, при необходимости, промежуточный УЦ.
- Обновить CRL (списки отзыва), если политика организации это требует.
- Разместить личный ключ (PFX, перенос каталога, токен) и связать с сертификатом.
- Прогнать тестовую подпись cryptcp.
Мини-глоссарий:
- Контейнер — каталог или область на токене, где лежит закрытый ключ;
- HDIMAGE — программный контейнер на диске;
- PFX/P12 — переносимый файл «ключ + сертификат» с паролем;
- P7B — PKCS#7-пакет с несколькими сертификатами УЦ;
- CRL — перечень отозванных до срока серийных номеров.
Минимальные предпосылки:
- в /opt/cprocsp/bin/amd64/ доступны certmgr, csptest, cpconfig, cryptcp;
- cpconfig -license -view не сообщает об истечении лицензии;
- известен источник файлов (.pfx/.cer/.p7b/.crl) или тип носителя;
- для системного хранилища потребуются права sudo.
.png)
2. Хранилища, форматы и первичная диагностика
2.1 Куда попадает сертификат
Путаница между пользовательским и системным хранилищем — главная причина ситуации «всё импортировал, 1С не видит». Префикс u (uMy, uRoot) ограничивает видимость текущим UID; запись в root/CA без u доступна всем сеансам и часто требует root-прав.
|
Параметр -store |
Роль в PKI |
Кому видно |
|
uRoot / root |
Якорные (корневые) УЦ |
Пользователь / вся система |
|
CA / uCA |
Промежуточные издатели, CRL |
Пользователь / вся система |
|
uMy / my |
Личные сертификаты с ключом |
Пользователь / вся система |
2.2 Какие файлы у вас на руках
- PFX — готовый перенос «под ключ»; нужен только пароль экспорта;
- CER/CRT — только открытая часть; без контейнера бесполезен для подписи;
- Каталог KEY — бинарные файлы контейнера после копирования с другого ПК;
- P7B — пачка сертификатов цепочки одним импортом;
- CRL — двоичный/PEM-список отозванных сертификатов.
2.3 Три команды экспресс-проверки
export CSP=/opt/cprocsp/bin/amd64
$CSP/cpconfig -license -view
$CSP/certmgr -list
$CSP/csptest -keyset -enum_cont -verifycontext -fqcn
Сохраните FQCN нужного контейнера из последней команды — строка вида \\.\HDIMAGE\<uuid> понадобится при привязке .cer.
.png)
3. Импорт личного ключа через консоль
Серверные и VDI-машины часто настраивают без графического интерфейса. Ключи -inst и -install в certmgr равнозначны; ниже — рабочие однострочники с пояснениями в комментариях
3.1. Готовый PFX
CSP=/opt/cprocsp/bin/amd64
# PIN — пароль, заданный при выгрузке на Windows
$CSP/certmgr -install -pfx -file "$HOME/certs/employee.pfx" -pin '****' -store uMy
$CSP/certmgr -list -store uMy | grep -i subject
3.2. Открытая часть (.cer) и существующий контейнер
CSP=/opt/cprocsp/bin/amd64
CONT='\\.\HDIMAGE\my-container-name' # из csptest -enum_cont
$CSP/certmgr -inst -file "$HOME/certs/issued.cer" -cont "$CONT" -silent -store uMy
# интерактивный выбор контейнера:
$CSP/certmgr -inst -file "$HOME/certs/issued.cer" -ask-container -store uMy
3.3. Перенос каталога KEY с другой машины
Скопируйте папку контейнера в /var/opt/cprocsp/keys/<linux_user>/ (уточните путь в документации вашей сборки). Права — только владелец (chmod 700). Затем:
CSP=/opt/cprocsp/bin/amd64
$CSP/csptest -absorb -certs -autoprov
$CSP/certmgr -list -store uMy
3.4. Аппаратный носитель
CSP=/opt/cprocsp/bin/amd64
$CSP/certmgr -inst -cont '\\.\Rutoken\container_id' -store uMy
3.5. Дозапись .cer в контейнер после выпуска УЦ
Типовой сценарий: запрос на сертификат отправлен, ключ остался локально, от УЦ получен только файл issued.cer.
CSP=/opt/cprocsp/bin/amd64
$CSP/certmgr -inst -inst_to_cont -ask-container -pin "token_pin" \
-file "$HOME/certs/issued.cer"
$CSP/csptest -keyset -check -cont '\\.\reader\container'
.png)
4. Тот же результат через графическую оболочку
Оконное приложение CSP (пункт меню «КриптоПро CSP» или cpconfig) выполняет те же операции. Включите расширенный режим и вручную укажите хранилище «Личное» — автоматический подбор иногда отправляет сертификат в «Другие пользователи», и прикладное ПО его не находит.
4.1. Загрузка PFX мастером
- Запустить графическую оболочку → раздел работы с сертификатами.
- Выбрать загрузку ключевого материала из PFX.
- Указать путь к файлу и пароль экспорта.
- При необходимости задать новый PIN контейнера или оставить поле пустым.
- Явно выбрать хранилище «Личное» перед завершением.
- Убедиться, что в списке появился субъект (Subject) с вашим ФИО или организацией.
.png)
4.2. Файл .cer (открытая часть)
- Расширенный режим → ручной выбор хранилища (без автоподбора).
- Хранилище «Личное» → команда добавления сертификата из файла.
- Выбрать .cer на диске и подтвердить.
Внимание. Без связанного закрытого ключа подпись по-прежнему недоступна.
.png)
4.3. Контейнер после копирования KEY
После размещения каталога в keys/<user> контейнер виден на вкладке контейнеров.
- Отметить нужный контейнер.
- Выполнить установку сертификата в хранилище «Личное».
- Дождаться сообщения об успешном завершении.

4.4. USB-токен / флешка
- Подключить носитель до старта CSP.
- На вкладке контейнеров найти устройство (поиск по имени ускоряет работу).
- Импортировать сертификат в «Личное».

5. Доверие к корневому УЦ
Корень цепочки — самоподписанный сертификат издателя верхнего уровня. Без него промежуточные и личные сертификаты будут «недоверенными», даже если импорт прошёл без ошибок.
5.1. Консоль
CSP=/opt/cprocsp/bin/amd64
$CSP/certmgr -inst -cert -file "$HOME/certs/root_ca.cer" -store uRoot
# для всех пользователей машины:
sudo $CSP/certmgr -inst -cert -file /usr/local/share/ca/root_ca.cer -store root
$CSP/certmgr -list -store uRoot

5.2. Графический интерфейс
- Расширенный режим, ручной выбор хранилища.
- «Доверенные корневые центры сертификации».
- Импорт файла .cer; подтвердить стандартное предупреждение безопасности ОС.

6. Промежуточные издатели (файл .p7b)
Между корневым и конечным сертификатом часто есть один или несколько промежуточных УЦ. Пакетный импорт .p7b экономит время по сравнению с поштучным .cer.
CSP=/opt/cprocsp/bin/amd64
$CSP/certmgr -inst -cert -file "$HOME/certs/chain.p7b" -store CA
$CSP/certmgr -list -store CA

7. Актуализация CRL
Список отозванных сертификатов (CRL) фиксирует сертификаты, аннулированные до окончания срока действия. Проверка контрагента без CRL или OCSP не подтверждает, что ключ не отозван. В CSP CRL обычно размещают в хранилище промежуточных УЦ (параметр -store CA).
Источники файла:
- сайт УЦ, выпустившего ваш сертификат;
- поле распределения CRL (CDP) в свойствах сертификата;
- корпоративный портал ИБ (если CRL раздаётся централизованно).
Сохраните .crl локально. Если браузер блокирует HTTP-ссылку — добавьте хост в исключения загрузок (настройки конкретного браузера). Импорт:
CSP=/opt/cprocsp/bin/amd64
$CSP/certmgr -inst -crl -file "$HOME/certs/ca.crl" -store CA
Планируйте обновление до даты следующего выпуска CRL (nextUpdate).

8. Приёмочные испытания рабочего места
Перед передачей АРМ пользователю или подключением к продуктивному ЭДО прогоните короткий сценарий — он выявляет большинство типовых ошибок конфигурации.
- uMy содержит сертификат с привязкой к ключу;
- uRoot/CA заполнены; цепочка в свойствах сертификата зелёная/полная;
- CRL не просрочен (если используется);
- cryptcp подписывает и проверяет тестовый файл.
CSP=/opt/cprocsp/bin/amd64
printf 'test' > /tmp/sign_probe.txt
THUMB=<SHA1 из certmgr -list>
$CSP/cryptcp -sign -thumbprint $THUMB -pin <PIN> /tmp/sign_probe.txt /tmp/sign_probe.sig
$CSP/cryptcp -verify -thumbprint $THUMB /tmp/sign_probe.sig

9. Astra Linux и Ubuntu: что реально отличается
|
Вопрос |
Astra Linux |
Ubuntu |
|
Откуда CSP |
образ ОС / репозиторий заказчика |
архив tar.gz или deb с cryptopro.ru |
|
Графический интерфейс |
часто в реестре ПО |
пакет cprocsp-gui из комплекта |
|
Ограничения |
МРД, домен, политики USB |
стандартные права UNIX |
|
certmgr |
одинаково |
одинаково |
Перед апдейтом CSP сверьте версию с регламентом ИБ: старые контейнеры GOST 2001 могут потребовать миграции.
10. Диагностика типовых сбоев
|
Симптом |
Гипотеза |
Действие |
|
Сертификат есть, подписи нет |
нет связи с закрытым ключом |
PFX или -cont / -inst_to_cont |
|
Недоверенный издатель |
разрыв в цепочке УЦ |
uRoot и CA (файл .p7b) |
|
Отказ в доступе (Permission denied) |
права на хранилище или каталог keys |
sudo, chown |
|
Пустой список контейнеров |
токен или драйвер |
cprocsp-rdr, переподключить USB |
|
CRL просрочен |
файл не обновляли |
скачать новый .crl |
|
Неверный PIN |
ошибка ввода или блокировка |
проверить PIN, разблокировать у УЦ |

11. Итог
Настройка сводится к заполнению хранилищ в правильном порядке: корневые УЦ → промежуточные и CRL → личный ключ. Графический интерфейс и командная строка взаимозаменяемы; для массового развёртывания удобнее скрипты с certmgr. Резервные копии PFX и PIN храните отдельно от рабочей станции.
Официальные источники:
- docs.cryptopro.ru — эксплуатационная документация;
- cryptopro.ru/products/csp/downloads — дистрибутивы;
- certmgr -help / cryptcp -help — встроенная справка.
Часто задаваемые вопросы
Почему 1С не видит сертификат после установки на Linux?
Чаще всего — неверное хранилище. Если сертификат установлен без явного указания (-store uMy), оболочка CSP может отправить его в «Другие пользователи» вместо «Личное». Убедитесь командой certmgr -list -store uMy, что сертификат там есть и у него есть связанный закрытый ключ (поле «Есть приватный ключ: Да»). Если ключа нет — используйте PFX-импорт или -inst_to_cont с явным указанием контейнера.
Как перенести сертификат и ключ КриптоПро с Windows на Linux?
Самый надёжный способ — экспортировать PFX на Windows (с пометкой «Разрешить экспорт закрытого ключа»), скопировать файл на Linux и импортировать: certmgr -install -pfx -file employee.pfx -pin 'пароль' -store uMy. Альтернатива — скопировать каталог контейнера KEY в /var/opt/cprocsp/keys/<user>/ с правами chmod 700, после чего запустить csptest -absorb -certs -autoprov. После любого варианта прогоните тестовую подпись через cryptcp.
В чём разница между хранилищами uRoot/uMy и root/my в КриптоПро на Linux?
Префикс u (uRoot, uMy, uCA) означает пользовательский контекст: хранилище видно только текущему UID. Без префикса (root, my, CA) — системное хранилище, доступное всем пользователям машины; запись в него требует sudo. Для одиночного АРМ достаточно пользовательских хранилищ. Если несколько пользователей или сервис работают с одним сертификатом УЦ — корневые сертификаты имеет смысл установить в системное хранилище root.
Что делать, если CRL устарел и подпись не проходит?
Скачайте актуальный .crl с сайта вашего УЦ (адрес CDP указан в свойствах сертификата в поле «Точки распределения CRL»). Импортируйте командой: certmgr -inst -crl -file ca.crl -store CA. Проверьте дату nextUpdate нового файла — запланируйте обновление заблаговременно. Если браузер блокирует HTTP-ссылку на .crl — добавьте хост УЦ в исключения загрузок.
