Коллеги, мне надоело копаться в разных частях форума. Поэтому решил собрать информацию по SCP с коментариями обычным языком, возможно кому-то будет полезной.
Так как мне нужна была работа SCP+Nginx, она может быть не полной для вашего случая.# Просмотр лицензии:/opt/cprocsp/bin/amd64/cpconfig -license -view
# Для установки другой лицензии (под root):/opt/cprocsp/bin/amd64/cpconfig -license -set {SERIAL_NUMBER}
###############################################################################
# Посмотреть контейнеры, показывает короткие пути вида "\\.\HDIMAGE\..." имена и полные пути вида "\\.\HDIMAGE\HDIMAGE\\..." /opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -fqcn -verifyc -uniq
# Создать контейнер (новый секретный ключ) При генерации надо много кнопок нажимать. Пароль на контейнер не ставим (оставляем пусто) при работе с Nginx./opt/cprocsp/bin/amd64/csptest -keyset -provtype 80 -newkeyset -container '{container_path}'
# Прим
/opt/cprocsp/bin/amd64/csptest -keyset -provtype 80 -newkeyset -container '\\.\HDIMAGE\container2025'
# Посмотреть свойства контейнера (тип ключа, даты ключа, OID ключа)/opt/cprocsp/bin/amd64/csptest -keyset -container '{container_path}'
# Прим
/opt/cprocsp/bin/amd64/csptest -keyset -container '\\.\HDIMAGE\container2025'
# Посмотреть детально все свойства контейнера (очень много информации, включая линкованные сертификаты которые не истекли)/opt/cprocsp/bin/amd64/csptest -keyset -container '{container_path}' -info
# Прим
/opt/cprocsp/bin/amd64/csptest -keyset -container '\\.\HDIMAGE\container2025' -info
# Убрать/поменять пароль контейнера/opt/cprocsp/bin/amd64/csptest -passwd -change '{new password or empty}' -container '{container_path}' -passwd '{current_password}'
# Прим
/opt/cprocsp/bin/amd64/csptest -passwd -change '' -container '\\.\HDIMAGE\container2025' -passwd '12345678'
# Удалить контейнер. Лучше использовать полный путь вида "\\.\HDIMAGE\HDIMAGE\\..." /opt/cprocsp/bin/amd64/csptest -keyset -deletekeyset -container '{container_path}'
# Прим
/opt/cprocsp/bin/amd64/csptest -keyset -deletekeyset -container '\\.\HDIMAGE\HDIMAGE\\container2025.001\D09E'
# Установка сертификатов из всех контейнеров. Если сертификаты есть в контейнерах - будут установлены в личное хранилище с линковкой к контейнерам. От Захар Тихонов/opt/cprocsp/bin/amd64/csptest -absorb -certs -autoprov
###############################################################################
# Посмотреть сертификаты /opt/cprocsp/bin/amd64/certmgr -list
# Посмотреть определенный сертификат /opt/cprocsp/bin/amd64/certmgr -list -thumbprint '{CERT_THUMBPRINT}'
# Прим
/opt/cprocsp/bin/amd64/certmgr -list -thumbprint '7d18631aad54ca3705207ace5005ea8de274a11b'
# Экспортировать сертификата из локального хранилища/opt/cprocsp/bin/amd64/certmgr -export -thumbprint '{CERT_THUMBPRINT}' -dest {CERT_PATH_EXPORT}
# Прим
/opt/cprocsp/bin/amd64/certmgr -export -thumbprint '7d18631aad54ca3705207ace5005ea8de274a11b' -dest /tmp/test.cer
# Установить сертификат без ключа в общее хранилище (uMy)/opt/cprocsp/bin/amd64/certmgr -inst -file {CERT_PATH}
# Прим
/opt/cprocsp/bin/amd64/certmgr -inst -file /tmp/mycert.cer
# Установить сертификат связав с закрытым ключом в общее хранилище (uMy)/opt/cprocsp/bin/amd64/certmgr -inst -file {CERT_PATH} -cont '{container_path}'
# Прим
/opt/cprocsp/bin/amd64/certmgr -inst -file /tmp/mycert.cer -cont '\\.\HDIMAGE\container.name'
# Установить сертификат без ключа в хранилище. Если хранилища не существует, оно создастся автоматически/opt/cprocsp/bin/amd64/certmgr -inst -file {CERT_PATH} -store {STORE_NAME}
# Прим
/opt/cprocsp/bin/amd64/certmgr -inst -file /tmp/mycert.cer -store uTrusted
# Установить сертификат связав с закрытым ключом в хранилище/opt/cprocsp/bin/amd64/certmgr -inst -file {CERT_PATH} -cont '{container_path}' -store uTrusted
# Прим
/opt/cprocsp/bin/amd64/certmgr -inst -file /tmp/mycert.cer -cont '\\.\HDIMAGE\container.name' -store uTrusted
# Установить все сертификаты из файла в хранилище/opt/cprocsp/bin/amd64/certmgr -inst -all -store {STORE_NAME} -file {CERT_PATH}
# Прим
/opt/cprocsp/bin/amd64/certmgr -inst -all -store uroot -file cacer.p7b
# Проверка цепочки сертификатов, можно использовать со -store/opt/cprocsp/bin/amd64/certmgr -list -thumbprint '{CERT_THUMBPRINT}' -chain
# Прим
/opt/cprocsp/bin/amd64/certmgr -list -thumbprint '7d18631aad54ca3705207ace5005ea8de274a11b' -chain
# Чтобы проверить цепочку сертификатов, можно скопировать персональный сертификат в файл, запущено с дебагомCP_PRINT_CHAIN_DETAIL=1 /opt/cprocsp/bin/amd64/cryptcp -copycert -thumbprint '{CERT_THUMBPRINT}' -df {CERT_PATH_COPY}
# Прим
CP_PRINT_CHAIN_DETAIL=1 /opt/cprocsp/bin/amd64/cryptcp -copycert -thumbprint '7d18631aad54ca3705207ace5005ea8de274a11b' -df /tmp/test_chain.cer
###############################################################################
# Посмотреть список CRL/opt/cprocsp/bin/amd64/certmgr -list -crl
# Установить CRL. Информация разница на форуме по поводу места установки (uMy или uCA). В документации нет информации./opt/cprocsp/bin/amd64/certmgr -inst -file {CRL_FILE_PATH} -crl
# Прим
/opt/cprocsp/bin/amd64/certmgr -inst -file /tmp/aucbr-D944F67B23B815C9803690ECFE34B2C5F09652A2.crl -crl
# Удалить CRL/opt/cprocsp/bin/amd64/certmgr -delete -crl -keyid '{AuthKeyID}'
# Прим
/opt/cprocsp/bin/amd64/certmgr -delete -crl -keyid 'c91358b14ca7623a7ed23f3ca6e7147c9d70a386'
###############################################################################
# Посмотреть все созданные хранилища пользователя. Физические пути на локальной машине ls -la /var/opt/cprocsp/users/{USER}/stores/
# Прим
ls -la /var/opt/cprocsp/users/nginx/stores/
###############################################################################
# Посмотреть все созданные контейнеры(ключи) пользователя. Физические пути на локальной машине ls -la /var/opt/cprocsp/keys/{USER}
# Прим
ls -la /var/opt/cprocsp/keys/nginx
###############################################################################
# Копировать контейнер (ключ) можно с другого ПК, будет работать. Копирование хранилищ возможно, неизвестно будет ли рабрать корректно, информации нет# Скопировать приватный ключ(контейнер), где {USER} cp -R /tmp/container2025.000 /var/opt/cprocsp/keys/{USER}/
# Поставить права chmod -R 600 /var/opt/cprocsp/keys/{USER}/container2025.000
###############################################################################
Хранилища по умолчанию. Параметры: 'u' для текущего пользователя, 'm' для хранилища локального компьютераMy — хранилище для пользовательских сертификатов, вляется значением по умолчанию (uMy) если не указано другое
Root — для корневых CA сертификатов
CA — для промежуточных CA сертификатов или CRL
AddressBook — для других пользовательских сертификатов
Cache — хранилище кэша сертификатов/CRL (доступно только чтение и удаление)
SCP Проверяя цепочку My сертификата, берет значения из сначала из Root, потом CA ###############################################################################
Если сертификат выпущен сторонним Центром( например. вашей компанией), и допустим у вас нет в цепочке промежуточного, а только СА
# Прим
company_server.cer - company_ca.cer
То сompany_ca.cer ужно установить в Root, а company_server.cer нужно установить в uСА, так как он сам себя ставит в цепочку вместо промежуточного(линковать не обязательно). Плюс company_server.cer нужно установить в uMy как клиентский
PS.
Как работают Trusted хранилища для Nginx, не ясно.
В теории в нем дожны хранится только CA из Цепочки сертификата, но оно не работает корректно.
Иногда требуется докинуть туда по мимо CA из Цепочки сертификата, неочевидные сертификаты типо СА минкомсвязь или какой-то другой(методом тыка).
Если неочевидного СА сертификата не хватает, то будет ошибка в логах(systemctl) при старте Nginx, хотя сам Nginx запуститься, но соединения не пройдут. Так же ошибка может быть в общем error.log
Отредактировано пользователем 16 мая 2025 г. 20:19:00(UTC)
| Причина: Не указана