https://github.com/demetrous-fd/cryptopro-mass-installer
Приложение для быстрого добавления множества ЭЦП КриптоПро на станциях с Windows и Linux.
https://github.com/demetrous-fd/cryptopro-mass-installer
cades certmgr cli console cryptopro cryptoprocsp linux windows
Last synced: about 1 month ago
JSON representation
Приложение для быстрого добавления множества ЭЦП КриптоПро на станциях с Windows и Linux.
- Host: GitHub
- URL: https://github.com/demetrous-fd/cryptopro-mass-installer
- Owner: Demetrous-fd
- Created: 2024-07-26T08:32:56.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-02-19T09:22:20.000Z (over 1 year ago)
- Last Synced: 2025-02-19T10:25:52.930Z (over 1 year ago)
- Topics: cades, certmgr, cli, console, cryptopro, cryptoprocsp, linux, windows
- Language: Go
- Homepage:
- Size: 59.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# CryptoPro Mass Installer
Приложение для быстрого добавления множества электронных подписей на станциях с Windows и Linux.
[Ссылка на скачивание последней версии программы](https://github.com/Demetrous-fd/CryptoPro-Mass-Installer/releases/latest)
### Требования для запуска
- КриптоПро ЭЦП 4-5 версии
### Как использовать
1. Перенесите пары сертификат/контейнер в папку certs, если она отсутствует создайте.
2. Если требуется установить корневые сертификаты, создайте папку root в папке certs и перенесите сюда корневые сертификаты (.cer/.p7b).
3. Запустите cpmass, пары сертификат/контейнер найдутся и установятся автоматически
### Как использовать с pfx контейнерами
0. [Экспортируйте контейнер в pfx файл](https://support.kontur.ru/ca/55441-ustanovka_pfxfajla)
1. Перенесите пары сертификат/pfx_контейнер в папку certs
2. Создайте и опишите один из файлов установки:
- Создайте файл excel, заполните поля container(название pfx файла/директория контейнера), cert(название файла), pfx_password и сохраните файл с названием `data.csv` формате CSV UTF-8 (Разделитель - запятая) в папке с приложением.
| **container** | **cert** | **pfx_password** |
|----------------|----------------|-----------------|
| Иванов А.И.pfx | Иванов А.И.cer | SomeStrongPass |
| akimokyv.000 | Петров А.И.cer | |
| # Сидоров А.И.pfx | Сидоров А.И.cer | SomeStrongPass |
Если требуется пропустить установку определенной подписи, добавьте в начало поля container "решетку с пробелом" > "# "
- Создайте `settings.json` и перечислите все пары сертификат/контейнер в поле `items` (Перед использованием удалите все строки с комментариями `//`)
```json
{
"default": {
"pfxPassword": "SharePass", // Общий пароль для всех pfx контейнеров
"namePattern": "#subject.surname #subject.initials - #subject.title до #expire_after", // Общий шаблон имени контейнеров
"exportable": true // Разрешает или запрещает экспорт контейнеров, по умолчанию false
},
"items": [
{
"containerPath": "Иванов А.И.pfx",
"certificatePath": "Иванов А.И.cer"
},
{
"containerPath": "akimokyv.000",
"certificatePath": "Петров А.И.cer",
"name": "Петров А.И. - Инженер до #expire_after"
},
{
"containerPath": "PeterPetrovich.pfx",
"certificatePath": "PeterPetrovich.cer",
"PfxPassword": "SomeStrongPass",
"exportable": false
}
]
}
```
3. Запустите cpmass
### Шаблонизатор имени контейнера
Пример шаблона: `#subject.surname #subject.initials - #subject.title до #expire_after` -> `Иванов А.И. - Инженер до 11.11.2025`
| **Тег** | **Описание** | **Пример** |
|----------------|----------------|-----------------|
| #expire_before | Действителен с | 11.11.2024 |
| #expire_after | Действителен до | 11.11.2025 |
| #subject.common_name или #issuer.common_name | Общее имя | Иванов Иван Иванович / www.example.com / Название организации |
| #subject.surname или #issuer.surname | Фамилия | Иванов |
| #subject.country_name или #issuer.country_name | Код страны | RU |
| #subject.locality_name или #issuer.locality_name | Город или населённый пункт | г.Москва |
| #subject.state_or_province_name или #issuer.state_or_province_name | Штат или область | Московская область |
| #subject.street_address или #issuer.street_address | Адрес | Большой Златоустинский переулок, д. 6, строение 1 |
| #subject.organization_name или #issuer.organization_name | Название организации | Казначейство России |
| #subject.organizational_unit_name или #issuer.organizational_unit_name | Название структурного подразделения | АСУ |
| #subject.title или #issuer.title | Должность или звание субъекта | Инженер |
| #subject.telephone_number или #issuer.telephone_number | Телефон | 8-800-555-35-35 |
| #subject.name или #issuer.name | - | - |
| #subject.given_name или #issuer.given_name | - | Иван Иванович |
| #subject.initials или #issuer.initials | Инициалы | И.И. |
| #subject.pseudonym или #issuer.pseudonym | - | - |
| #subject.email_address или #issuer.email_address | Email | ivanovii@example.com |
### Файл настроек `settings.json`
- cpmass может работать без файла настроек
- Если поле `items` отсутствует, то пары сертификат/контейнер будут взяты из `data.csv` или будут найдены автоматически
```json
{
"default": { // Значения по умолчанию
"namePattern": "#subject.surname #subject.initials - #subject.title до #expire_after",
"pfxPassword": "SharePass",
"exportable": true
},
"args": { // Аргументы запуска
"skipRoot": false,
"skipWait": false,
"debug": false
},
"items": [ // Описание пар сертификат/контейнер
{
"name": "Петров П.П. - Инженер до 11.11.2025",
"containerPath": "PeterPetrovich.pfx",
"certificatePath": "PeterPetrovich.cer",
"PfxPassword": "SomeStrongPass",
"exportable": false
},
...
]
}
```
### Аргументы запуска
```shell
Использование:
cpmass [flags] [command flags]
Commands:
install - Установка электронной подписи
Flags:
-debug
Включить отладочную информацию в консоли
-exportable
Разрешить экспорт контейнеров
-skip-root
Пропустить установку корневых сертификатов
-skip-wait
Пропустить ожидание перед выходом
-version
Отобразить версию программы
Запустите `cpmass -h` чтобы получить справку по определенной команде
```
```shell
Использование:
cpmass install -cont "..." -cert "..." [flags]
Flags:
-cert string
[Требуется] Путь до файла сертификата
-cont string
[Требуется] Путь до pfx/папки контейнера
-name string
Название контейнера
-pfx_pass string
Пароль от pfx контейнера
```
### Поддержка проекта
Если вы обнаружили ошибку или хотите предложить идею для улучшения проекта, создайте issue.
Если у вас есть возможность и желание внести улучшения в проект, отправляйте pull request.