Как убедиться, что токен и криптозащита видны 1С
Содержание
Проверить драйвер можно за пять минут, если идти от железа к программе: токен в Windows, затем криптопровайдер, затем сертификат в хранилище и только потом настройки 1С. Если на первом шаге ломается, дальше смотреть нечего. Чаще всего 1С «не видит подпись» не из-за самой 1С, а из-за драйвера токена или службы смарт-карт.
Ниже порядок проверки с готовыми командами. Он подходит для платформы 8.3 с интерфейсом «Такси» на Windows 10 и Server 2016 и новее. Примеры даны для двух самых частых связок: КриптоПро CSP и токены Рутокен или JaCarta. Для ViPNet CSP логика та же, отличаются названия утилит.
Из чего состоит цепочка подписи
Чтобы 1С подписала документ, должны сработать четыре звена. Любое из них может выпасть отдельно от остальных.
- Драйвер носителя. Он нужен, чтобы Windows увидела токен или смарт-карту. Это драйверы Рутокен, «Единый клиент JaCarta», драйвер ESMART и т. п.
- Криптопровайдер. КриптоПро CSP или ViPNet CSP. Он умеет работать с ключом на носителе и считать подпись.
- Сертификат в хранилище Windows с привязкой к закрытому ключу.
- Настройка в 1С: программа подписи добавлена, её тип и алгоритм указаны верно.
Диагностику строят в том же порядке. Не меняйте настройки 1С, пока не убедились, что Windows сама видит токен.
| Звено | Как проверить | Признак поломки |
|---|---|---|
| Драйвер носителя | Диспетчер устройств, панель управления токеном | Устройство с жёлтым значком или не показано вовсе |
| Служба смарт-карт | services.msc | Служба остановлена или отключена |
| Криптопровайдер | Панель КриптоПро CSP, вкладка «Общие» | Нет окна, истёк срок лицензии |
| Сертификат и ключ | certmgr.msc, вкладка «Сервис» в КриптоПро | Нет значка ключа на сертификате |
| Настройки в 1С | Форма настройки электронной подписи | Программа не добавлена или проверка падает |
Убедитесь, что Windows видит токен
Вставьте носитель напрямую в порт компьютера, без удлинителя и хаба. Хабы с пассивным питанием — частая причина того, что токен то виден, то нет.
Откройте диспетчер устройств (devmgmt.msc) и найдите носитель в двух ветках:
- «Контроллеры USB» или «Устройства HID»: здесь токен виден как USB-устройство;
- «Устройства чтения смарт-карт»: здесь появляется виртуальный считыватель, который создаёт драйвер. Если ветки нет вообще, драйвер не поставлен.
Если рядом с устройством жёлтый восклицательный знак, переустановите драйвер от производителя токена. Универсальный драйвер Windows для смарт-карт токен не заменит.
Затем откройте штатную панель производителя: «Панель управления Рутокен» или «Единый клиент JaCarta». В ней токен должен определиться, а PIN-код открываться. Если панель токен не показывает, 1С его тем более не увидит.
Проверьте и службу «Смарт-карта» (services.msc). Она должна работать, тип запуска «Автоматически». Остановленная служба даёт симптом «токен вставлен, а считыватель не найден».
Проверьте, что криптопровайдер установлен и работает
Откройте «Пуск → КриптоПро CSP». Если пункта нет, провайдер не установлен или установка оборвалась. На вкладке «Общие» видны версия и срок действия лицензии.
Что смотреть на других вкладках:
- «Оборудование → Настроить считыватели». В списке должен быть считыватель вашего токена, например «Все считыватели смарт-карт». Если его нет, нажмите «Добавить» и выберите нужный;
- «Сервис → Просмотреть сертификаты в контейнере». Кнопка «Обзор» покажет контейнеры на токене. Контейнер есть, значит, носитель читается;
- «Алгоритмы». Тип провайдера и алгоритм должны совпадать с тем, как выпущен сертификат (ГОСТ Р 34.10-2012, 256 или 512 бит).
Быстрая проверка из командной строки:
"C:\Program Files\Crypto Pro\CSP\csptest.exe" -keyset -enum_cont -fqcn -verifycontext
Команда перечисляет контейнеры вместе с именами считывателей. Если вывод пустой, токен не читается на уровне провайдера. Если контейнеры видны, а в 1С их нет, проблема в сертификате или в настройках.
Лицензия КриптоПро CSP имеет срок. Просроченная лицензия не мешает увидеть токен, но подпись не создаётся. Дату окончания смотрите на вкладке «Общие».
Проверьте, видит ли система ключ и сертификат
Сертификат должен лежать в личном хранилище пользователя и быть связан с закрытым ключом. Откройте certmgr.msc, ветка «Личное → Сертификаты». У нужного сертификата должен быть значок ключа в левом нижнем углу. Откройте его двойным щелчком: внизу на вкладке «Общие» написано «Есть закрытый ключ, соответствующий этому сертификату».
Нет такой надписи, но токен подключён и контейнер читается? Значит, сертификат установлен без привязки к ключу. Привязку делают так:
- Откройте «КриптоПро CSP → Сервис → Просмотреть сертификаты в контейнере».
- Выберите контейнер через «Обзор», нажмите «Далее».
- Нажмите «Установить». Сертификат из контейнера встанет в личное хранилище уже с привязкой к ключу.
Альтернатива для опытных, из командной строки от имени пользователя:
certutil -repairstore My "серийный_номер_сертификата"
Серийный номер берётся из свойств сертификата. Команда восстанавливает связь сертификата с ключом, если контейнер доступен.
Установленный сертификат проверяется ещё и по цепочке: корневой сертификат удостоверяющего центра и промежуточные должны быть в хранилищах «Доверенные корневые центры сертификации» и «Промежуточные центры сертификации». Без них будет ошибка построения цепочки, хотя ключ в порядке.
Куда ставить сертификаты
| Что | Хранилище |
|---|---|
| Ваш сертификат подписи | Личное (текущий пользователь) |
| Корневой сертификат УЦ | Доверенные корневые центры сертификации |
| Сертификат аккредитованного УЦ, промежуточный | Промежуточные центры сертификации |
Если 1С работает на терминальном сервере или от имени службы, смотрите хранилище того пользователя, под которым идёт подпись, а не своё.
Настройте и проверьте программу подписи в 1С
Откройте настройки электронной подписи в разделе «Администрирование». В типовых конфигурациях (БП 3.0, ЗУП 3.1, УТ 11) он называется «Электронная подпись и шифрование», а находится рядом с настройками обмена электронными документами. Если не нашли пункт, включите функциональную опцию электронных подписей.
В форме настройки две вкладки важны для нашей темы:
- «Программы». Здесь список криптопровайдеров, которыми пользуется 1С. Нужная запись должна быть и иметь тип, соответствующий установленному провайдеру. Для КриптоПро CSP это «КриптоПро CSP» с типом провайдера 80 для ГОСТ 2012 (256) или 81 для ГОСТ 2012 (512); если алгоритм старый ГОСТ 2001, тип 75. Для ViPNet CSP типы другие, смотрите документацию программы;
- «Сертификаты». Список сертификатов, добавленных в справочник. Здесь же проверяют конкретный сертификат.
В списке программ есть кнопка «Проверить». Она запрашивает у операционной системы версию провайдера. Если проверка проходит и показывает номер версии, 1С видит провайдер. Если пишет, что программа не найдена, вернитесь к предыдущим шагам.
Для сертификата откройте его карточку и нажмите «Проверить». 1С попросит PIN-код токена и выполнит пробную подпись. Эта проверка надёжнее всех предыдущих, потому что охватывает всю цепочку целиком.
Если сертификат в списке есть, а в 1С при выборе подписи пусто, проверьте, что он установлен именно для текущего пользователя Windows. Сертификат в хранилище «Локальный компьютер» 1С при подписании обычно не предлагает.
Разберите типичные ошибки подключения и подписи
Ошибки в этом месте формулируются по-разному, но причин немного. Попробуйте сопоставить свою ситуацию со списком.
Ещё три случая, которые часто принимают за поломку драйвера:
- PIN заблокирован. После нескольких неверных вводов токен блокируется. Разблокирует его только пользователь с PIN-кодом администратора через панель производителя либо удостоверяющий центр;
- Разрядность 1С. Платформа 32-битная, а провайдер установлен как 64-битный. Для КриптоПро CSP ставят оба набора библиотек, но если установка шла нетипично, 32-битная часть может отсутствовать;
- Сертификат истёк. Ключ на токене при этом читается без проблем, а подпись не создаётся. Дату окончания смотрите в карточке сертификата.
Перерегистрация драйвера и провайдера по шагам
Если токен виден через раз или после обновления Windows всё сломалось, помогает полная переустановка драйверного слоя. Делайте её, когда простые проверки не нашли причину.
Закройте 1С и все программы, которые используют токен: банк-клиенты, ЭДО, личный кабинет налоговой в браузере. Перед удалением КриптоПро убедитесь, что у вас есть лицензионный ключ и дистрибутив нужной версии. Контейнеры закрытых ключей на токене при этом не пропадут, а вот ключи в реестре и на дисках могут быть удалены вместе с настройками, поэтому их сначала копируют.
- Отключите токен от компьютера.
- Удалите драйвер носителя через «Параметры → Приложения» (или
appwiz.cpl). Удаляйте именно пакет производителя: «Драйверы Рутокен», «Единый клиент JaCarta» и т. д. - Перезапустите службу «Смарт-карта». В
services.mscправой кнопкой по службе: «Перезапустить». Если служба была отключена, включите автозапуск. - Установите свежий драйвер с сайта производителя токена. Выбирайте версию под вашу ОС.
- Подключите токен, дождитесь, пока Windows закончит установку устройства.
- Проверьте панель производителя. Токен должен показываться, PIN принимается.
- Если провайдер вёл себя странно, переустановите КриптоПро CSP: удалите через «Приложения», перезагрузитесь, установите дистрибутив нужной версии и введите лицензию.
- Добавьте считыватель и привяжите сертификат по шагам из разделов выше.
- Проверьте в 1С кнопкой «Проверить» в карточке сертификата.
После перезагрузки Windows порядок запуска служб иногда меняется. Если токен определился, а через час пропал, проверьте управление электропитанием USB: уберите галочку «Разрешить отключение этого устройства для экономии энергии» в свойствах USB-концентратора (диспетчер устройств, ветка «Контроллеры USB»).
Как не вернуться к этой проблеме
Несколько простых привычек экономят время при следующем сбое:
- держите на рабочем месте записанные версии драйвера и КриптоПро. Дистрибутивы лучше хранить в общей папке, чтобы не искать их в день сдачи отчётности;
- не обновляйте драйверы и провайдер за день до срока отправки отчёта. Проверять обновление лучше на одном компьютере;
- после крупных обновлений Windows делайте пробную подпись в 1С, не дожидаясь срочного документа;
- заводите копию контейнера, если политика УЦ и тип носителя это допускают. Для токенов с неизвлекаемым ключом копия невозможна, поэтому планируйте перевыпуск сертификата заранее;
- следите за сроком действия сертификата и лицензии КриптоПро. Напоминание в календаре за месяц обычно достаточно.