База знаний
Создание цепочек сертификатов с помощью csptest -minica
Опубликовано Андрей Русев on 2020-01-29 18:54

Консольная утилита csptest в режиме minica является сильно упрощённой версией удостоверяющего центра. Она позволяет создавать ключи, связанные с этими ключами сертификаты, а также CRL. Все регулируемые параметры можно задать через аргументы командной строки.

Рассмотрим работу с minica на примере. Создадим две цепочки сертификатов вида «корневой сертификат, его CRL, листовой сертификат», причём первая цепочка будет использовать отечественную криптографию, а вторая – зарубежную. Для простоты ограничимся командами для КриптоПро CSP 5.0 на *nix-подобной операционной системе – для Windows они будут аналогичными. С КриптоПро CSP 4.0 (minica доступен с версии 4.0.9969 Bayes) не будет возможности использовать провайдер "Crypto-Pro Enhanced RSA and AES CSP", а на *nix для контейнеров надо указывать полные имена в духе '\\.\HDIMAGE\minica_gost_root'. Полный список возможностей minica указан в справке.

/opt/cprocsp/bin/amd64/csptest -minica -help

Создадим ключ и соответствующий ему корневой сертификат (-root) с нужным именем (-dn). Ключ будет создан с использованием провайдера, задаваемого типом (-provtype) и именем (-provider). Ключ будет сохранён в указанный контейнер на указанном носителе (-container) и защищён паролем (-password). Сертификат будет сохранён в Local Machine-хранилище «Root» (-store), а также в указанный файл (-fcert).

/opt/cprocsp/bin/amd64/csptest -minica -root -dn "CN=MiniCA GOST root cert" -provtype 80 -provider "Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider" -container "minica_gost_root" -password "1" -store mRoot -fcert /tmp/gost_root.cer

Создадим ключ и соответствующий ему листовой сертификат (-leaf). Параметры создаваемых объектов задаются аналогично прошлому случаю. Для создания листового сертификата требуется задать информацию о сертификате, который его подпишет. Явно укажем, где найти этот сертификат (-issuer и -istore) и какой пароль применить к связанному с ним контейнеру (-ipassword).

/opt/cprocsp/bin/amd64/csptest -minica -leaf -dn "CN=MiniCA GOST leaf cert" -provtype 80 -provider "Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider" -container "minica_gost_leaf" -password "2" -store mMy -fcert /tmp/gost_leaf.cer -issuer "CN=MiniCA GOST root cert" -ipassword "1" -istore mRoot

Создание пустого CRL (-crl) очень похоже на упрощённое создание листового сертификата, меняется лишь задание результирующего файла (-fcrl).

/opt/cprocsp/bin/amd64/csptest -minica -crl -store mCa -fcrl /tmp/gost.crl -issuer "CN=MiniCA GOST root cert" -ipassword "1" -istore mRoot

Убедимся, что цепочка листового сертификата успешно проверяется.

/opt/cprocsp/bin/amd64/cryptcp -copycert -errchain -f /tmp/gost_leaf.cer

Создание цепочки с использованием зарубежной криптографии полностью аналогично.

/opt/cprocsp/bin/amd64/csptest -minica -root -dn "CN=MiniCA RSA root cert" -provtype 24 -provider "Crypto-Pro Enhanced RSA and AES CSP" -container "minica_rsa_root" -password "1" -store mRoot -fcert /tmp/rsa_root.cer

/opt/cprocsp/bin/amd64/csptest -minica -leaf -dn "CN=MiniCA RSA leaf cert" -provtype 24 -provider "Crypto-Pro Enhanced RSA and AES CSP" -container "minica_rsa_leaf" -password "2" -store mMy -fcert /tmp/rsa_leaf.cer -issuer "CN=MiniCA RSA root cert" -ipassword "1" -istore mRoot

/opt/cprocsp/bin/amd64/csptest -minica -crl -store mCa -fcrl /tmp/rsa.crl -issuer "CN=MiniCA RSA root cert" -ipassword "1" -istore mRoot

/opt/cprocsp/bin/amd64/cryptcp -copycert -errchain -f /tmp/rsa_leaf.cer

(6 плюсик(ов))
Класс!
Не очень :(

Коментарии (0)