CryptoPro устанавливается в /opt/cprocsp/
. Все нужные бинарники лежат в bin/архитектура
. В случае x64 версий архитектура amd64, в случае x32 — ia32. Соответственно вносите поправки в указанные ниже команды с учетом своей архитектуры.
Для того, чтобы можно было подписывать на сервере нужно устанавливать сертификаты с привязкой к приватному ключу. Т.к. криптопра написана матерыми виндузятниками, то кириллицу она отображает исключительно в кодировке 1251, а на серверах обычно UTF8, поэтому если криптопра пишет вопросиками или иероглифами — добавляйте в конец команды «|iconv -f windows-1251 -t utf-8
».
Установка сертификата с ключем:
sudo -u юзер bash
и остальные операции производим из-под этого пользователя;/var/opt/cprocsp/keys/юзер/
, где юзер
— это соответственно пользователь из предыдущего пункта;/opt/cprocsp/bin/amd64
/csptest -keyset -enum_cont -fqcn -verifyc
получаем список контейнеров с ключами, они будут иметь вид \\.\HDIMAGE\le-8da6f692-8c56-4742-8222-e5467a0cf472
или аналогичный, где куча буков-цифер как правило соответствует серийнику ключа. Находим в полученном списке тот ключ, который нужно добавить (в простейшем случае он будет просто единственным);
/var/opt/cprocsp/keys/юзер/
и все его содержимое должен принадлежать указанному юзеру, права на каталог должны быть 700), а также версию пакета lsb-cprocsp-base (см. выше);/opt/cprocsp/bin/amd64
/certmgr -inst -cont 'контейнер' -store uMy
Бывают контейнеры без сертификата, только с ключем, в таком случае сертификат необходимо поместить в файл, а при его установке пользоваться ключем -file. Либо утилитой certfix можно установить сертификат в контейнер.
-cont 'контейнер'
— контейнер, в котором лежат ключики сертификата (в соответствии с предыдущим пунктом)-store uMy
— это хранилице, в которое добавлять сертификат (по-умолчанию как раз uMy).Посмотреть установленные сертификаты можно командой /opt/cprocsp/bin/amd64/certmgr -list
Установленный сертификат должен иметь вид:
1------- Issuer : Блаблабла Subject : Блаблаблабла Serial : 0xXXXXXXXXXXXXXXXXXXXX PrivateKey Link: Yes. Container: HDIMAGE\\le-8da6f.000\4CF6
Обратите внимание на строку со словами PrivateKey Link: Yes
, если там стоит No
, то ключ не установился и сертификатом будет нельзя ничего подписать. Просмотр имеющихся ридеров: /opt/cprocsp/sbin/amd64/cpconfig -hardware reader -view
Еще мануал: http://estmnenie.com/cryptopro-csp-3-linux-how-to.html
fakeroot alien -kc cprocsp-pki-2.0.0-amd64-cades.rpm
fakeroot alien -kc cprocsp-pki-2.0.0-amd64-plugin.rpm
dpkg -i cprocsp-pki-cades_2.0.0-1_amd64.deb cprocsp-pki-plugin_2.0.0-1_amd64.deb
mkdir ~/.config/chromium/NativeMessagingHosts
ln -s /etc/opt/chrome/native-messaging-hosts/ru.cryptopro.nmcades.json ~/.config/chromium/NativeMessagingHosts/
Страница доступна по адресу chrome-extension://iifchhfnnmpdbibifmljnfjhpififfog/trusted_sites.html однако даже если она работает, она не позволяет указать адрес с нестандартным портом, поэтому редактирование ini файла все равно может потребоваться.
в линуксе в плагине 2й версии перестала работать страница настройки доверенных сайтов. Поэтому для возможности использования плагина, доверенные домены необходимо добавлять вручную. Это делается редактированием файла /var/opt/cprocsp/users/юзер/local.ini
:
[Software\"Crypto Pro"\CAdESplugin] TrustedSites = msz:"http://ololo.cc", \ "http://домен2", \ "http://домен3"
Важно для версии КриптоПро 3.6: для amd64 архитектуры следует использовать lsb-cprocsp-base версии 3.6.1-4, а для i386 версию 3.6.4-4. Хоть этот пакет и не имеет тега архитектуры, на самом деле версия важна. Вероятная причина тут такая: в версии 3.6.1 в файле /etc/init.d/cprocsp установлена проверка на LSB «версии 3 и выше», а в 3.6.4 «версии 3 ровно», при этом в современных дистрибутивах LSB имеет версию 4. Также в этом init.d есть другие изменения.