- PVSM.RU - https://www.pvsm.ru -
По данным РБК [1] и Тензор [2], в 2019 году в России будет выдано 4,6 млн. сертификатов квалифицированных электронных подписей (КЭП), соответствующих требованиям 63-ФЗ. Получается, что из 8 млн. зарегистрированных ИП и ООО каждый второй предприниматель пользуется электронной подписью. Помимо КЭП для ЕГАИС и облачных КЭП для сдачи отчетности, выдаваемых банками и бухгалтерскими сервисами, особый интерес представляют универсальные КЭП на защищенных токенах. Такие сертификаты позволяют логиниться на гос.порталы и подписывать любые документы, делая их юридически значимыми.
Благодаря сертификату КЭП на USB-токене можно удаленно заключить договор с контрагентом или дистанционным сотрудником, направить документы в суд; зарегистрировать онлайн-кассу, урегулировать задолженность по налогам и подать декларацию в личном кабинете на nalog.ru; узнать о задолженностях и предстоящих проверках на Госуслугах.
Представленный ниже мануал поможет работать с КЭП под macOS – без изучения форумов КриптоПро и установки виртуальной машины с Windows.
Что нужно для работы с КЭП под macOS:
Устанавливаем и настраиваем КЭП под macOS
Смена PIN-кода контейнера
Подпись файлов в macOS
Проверить подпись на документе
Вся информация ниже получена из авторитетных источников (КриптоПро #1 [3] и #2 [4], Рутокен [5], Корус-Консалтинг [6], УФО Минкомсвязи [7]), а скачивать ПО предлагается с доверенных сайтов. Автор является независимым консультантом и не связан ни с одной из упомянутых компаний. Следуя данной инструкции, всю ответственность за любые действия и последствия вы принимаете на себя.
Носители eToken и JaCarta в связке с КриптоПро под macOS не поддерживаются. Носитель Рутокен Lite – оптимальный выбор, стоит 500..1000= руб., шустро работает и позволяет хранить до 15 ключей.
Криптопровайдеры VipNet, Signal-COM и ЛИССИ в macOS не поддерживаются. Преобразовать контейнеры никак не получится. КриптоПро – оптимальный выбор, стоимость сертификата должна быть порядка 1300= руб. для ИП и 1600= руб. для ЮЛ.
Обычно годовая лицензия на КриптоПро CSP уже зашита в сертификат и многими УЦ предоставляется бесплатно. Если это не так, то необходимо купить и активировать бессрочную лицензию на КриптоПро CSP строго версии 4 стоимостью 2700=. КриптоПро CSP версии 5 под macOS в данный момент не работает.
Регистрируемся [8] на сайте КриптоПро и со страницы загрузок [9] скачиваем и устанавливаем версию КриптоПро CSP 4.0 R4 для macOS – скачать [10].
На сайте написано что это опционально, но лучше поставить. Со страницы загрузок [11] на сайте Рутокен скачиваем и устанавливаем Модуль поддержки Связки Ключей (KeyChain) – скачать [12].
Далее подключаем usb-токен, запускаем terminal и выполняем команду:
/opt/cprocsp/bin/csptest -card -enum -v
В ответе должно быть:
Aktiv Rutoken…
Card present…
[ErrorCode: 0x00000000]
Если ранее были попытки запустить КЭП под macOS, то необходимо почистить все ранее установленные сертификаты. Данные команды в terminal удалят только сертификаты КриптоПро и не затронут обычные сертификаты из Keychain в macOS.
sudo /opt/cprocsp/bin/certmgr -delete -all -store mroot
sudo /opt/cprocsp/bin/certmgr -delete -all -store uroot
/opt/cprocsp/bin/certmgr -delete -all
В ответе каждой команды должно быть:
No certificate matching the criteria
или
Deleting complete
Корневые сертификаты являются общими для всех КЭП, выданных любым удостоверяющим центром. Скачиваем со страницы загрузок [13] УФО Минкомсвязи:
Устанавливаем командами в terminal:
sudo /opt/cprocsp/bin/certmgr -inst -store mroot -f ~/Downloads/4BC6DC14D97010C41A26E058AD851F81C842415A.cer
sudo /opt/cprocsp/bin/certmgr -inst -store mroot -f ~/Downloads/8CAE88BBFD404A7A53630864F9033606E1DC45E2.cer
sudo /opt/cprocsp/bin/certmgr -inst -store mroot -f ~/Downloads/0408435EB90E5C8796A160E69E4BFAC453435D1D.cer
Каждая команда должна возвращать:
Installing:
…
[ErrorCode: 0x00000000]
Далее нужно установить сертификаты удостоверяющего центра, в котором вы выпускали КЭП. Обычно корневые сертификаты каждого УЦ находятся на его сайте в разделе загрузок.
Альтернативно, сертификаты любого УЦ можно скачать с сайта УФО Минкомсвязи [17]. Для этого в форме поиска нужно найти УЦ по названию, перейти на страницу с сертификатами и скачать все действующие сертификаты – то есть те, у которых в поле 'Действует' вторая дата еще не наступила. Скачивать по ссылке из поля 'Отпечаток'.
На примере УЦ Корус-Консалтинг: нужно скачать 4 сертификата со страницы загрузок [18]:
Скачанные сертификаты УЦ устанавливаем командами из terminal:
sudo /opt/cprocsp/bin/certmgr -inst -store mroot -f ~/Downloads/B9F1D3F78971D48C34AA73786CDCD138477FEE3F.cer
sudo /opt/cprocsp/bin/certmgr -inst -store mroot -f ~/Downloads/A0D19D700E2A5F1CAFCE82D3EFE49A0D882559DF.cer
sudo /opt/cprocsp/bin/certmgr -inst -store mroot -f ~/Downloads/55EC48193B6716D38E80BD9D1D2D827BC8A07DE3.cer
sudo /opt/cprocsp/bin/certmgr -inst -store mroot -f ~/Downloads/15EB064ABCB96C5AFCE22B9FEA52A1964637D101.cer
где после ~/Downloads/ идут имена скачанных файлов, для каждого УЦ они будут свои.
Каждая команда должна возвращать:
Installing:
…
[ErrorCode: 0x00000000]
Команда в terminal:
/opt/cprocsp/bin/csptestf -absorb -certs
Команда должна вернуть:
OK.
[ErrorCode: 0x00000000]
Для работы с гос.порталами потребуется специальная сборка браузера сhromium – Chromium-GOST. Исходный код проекта открыт, ссылка на репозиторий на GitHub [23] приводится на сайте КриптоПро [24]. По опыту, другие браузеры CryptoFox и Яндекс.Браузер для работы с гос.порталами под macOS не годятся. Стоит учесть, что в некоторых сборках Chromium-GOST личный кабинет на nalog.ru может подвисать или вообще перестает работать скролл, поэтому предлагается старая проверенная сборка 71.0.3578.98 – скачать [25].
Скачиваем и распаковываем архив, устанавливаем браузер копированием или drag&drop в каталог Applications. После установки Принудительно закрываем Chromium и пока не открываем, работаем из Safari.
killall Chromium-Gost
Со страницы загрузок [26] на сайте КриптоПро скачиваем и устанавливаем КриптоПро ЭЦП Browser plug-in версия 2.0 для пользователей – скачать [27].
Со страницы загрузок [28] на портале Госуслуг скачиваем и устанавливаем Плагин для работы с порталом государственных услуг (версия для macOS) – скачать [29].
Скачиваем корректный конфигурационный файл для расширения Госуслуг с сайта КриптоПро – скачать [30].
Выполняем команды в terminal:
sudo rm /Library/Internet Plug-Ins/IFCPlugin.plugin/Contents/ifc.cfg
sudo cp ~/Downloads/ifc.cfg /Library/Internet Plug-Ins/IFCPlugin.plugin/Contents
sudo cp /Library/Google/Chrome/NativeMessagingHosts/ru.rtlabs.ifcplugin.json /Library/Application Support/Chromium/NativeMessagingHosts
Запускаем браузер Chromium-Gost и в адресной строке набираем:
chrome://extensions/
Включаем оба установленных расширения:
В адресной строке Chromium-Gost набираем:
/etc/opt/cprocsp/trusted_sites.html
На появившейся странице в список доверенных узлов по-очереди добавляем сайты:
https://*.cryptopro.ru
https://*.nalog.ru
https://*.gosuslugi.ru
Жмем “Сохранить”. Должна появиться зеленая плашка:
Список доверенных узлов успешно сохранен.
В адресной строке Chromium-Gost набираем:
https://www.cryptopro.ru/sites/default/files/products/cades/demopage/cades_bes_sample.html
Должно выводиться “Плагин загружен”, а в списке ниже присутствовать ваш сертификат.
Выбираем сертификат из списка и жмем “Подписать”. Будет запрошен PIN-код сертификата. В итоге должно отобразиться
Подпись сформирована успешно
По ссылкам с сайта nalog.ru зайти может не получиться, т.к. не будут пройдены проверки. Заходить нужно по прямым ссылкам:
При авторизации выбираем "Вход с помощью электронной подписи". В появившемся списке "Выбор сертификата ключа проверки электронной подписи" будут отображены все сертификаты, включая корневые и УЦ, нужно выбрать ваш с usb-токена и ввести PIN.
Переподключаем usb-токен и проверяем что он виден с помощью команды в terminal:
sudo /opt/cprocsp/bin/csptest -card -enum -v
Очищаем кеш браузера за все время, для чего в адресной строке Chromium-Gost набираем:
chrome://settings/clearBrowserData
Переустанавливаем сертификат КЭП с помощью команды в terminal:
/opt/cprocsp/bin/csptestf -absorb -certs
Пользовательский PIN-код на Рутокен по-умолчанию 12345678, и оставлять его в таком виде никак нельзя. Требования к PIN-коду Рутокен: 16 символов max., может содержать латинские буквы и цифры.
На usb-токене и в других хранилищах может храниться несколько сертификатов, и нужно выбрать правильный. При вставленном usb-токене получаем список всех контейнеров в системе командой в terminal:
/opt/cprocsp/bin/csptest -keyset -enum_cont -fqcn -verifycontext
Команда должна вывести минимум 1 контейнер и вернуть
[ErrorCode: 0x00000000]
Нужный нам контейнер имеет вид
.Aktiv Rutoken liteXXXXXXXX
Если таких контейнеров выводится несколько – значит значит на токене записано несколько сертификатов, и вы в курсе какой именно вам нужен. Значение XXXXXXXX после слэша нужно скопировать и подставить в команду ниже.
/opt/cprocsp/bin/csptest -passwd -qchange -container "XXXXXXXX"
где XXXXXXXX – название контейнера, полученное на шаге 1 (обязательно в кавычках).
Появится диалог КриптоПро с запросом старого PIN-кода для доступа к сертификату, затем еще один диалог для ввода нового PIN-кода. Готово.
В macOS файлы можно подписывать в ПО КриптоАрм [33] (стоимость лицензии 2500= руб.), или несложной командой через terminal – бесплатно.
На токене и в других хранилищах может быть несколько сертификатов. Нужно однозначно идентифицировать тот, которым будем впредь подписывать документы. Делается один раз.
Токен должен быть вставлен. Получаем список сертификатов в хранилищах командой из terminal:
/opt/cprocsp/bin/certmgr -list
Команда должна вывести минимум 1 сертификат вида:
Certmgr 1.1 © "Crypto-Pro", 2007-2018.
program for managing certificates, CRLs and stores
= = = = = = = = = = = = = = = = = = = =
1-------
Issuer: E=help@esphere.ru,… CN=ООО КОРУС Консалтинг СНГ…
Subject: E=sergzah@gmail.com,… CN=Захаров Сергей Анатольевич…
Serial: 0x0000000000000000000000000000000000
SHA1 Hash: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
...
Container: SCARDrutoken_lt_00000000000000
…
= = = = = = = = = = = = = = = = = = = =
[ErrorCode: 0x00000000]
У нужного нам сертификата в параметре Container должно быть значение вида SCARDrutoken.... Если сертификатов с такими значениями несколько, то значит на токене записано несколько сертификатов, и вы в курсе какой именно вам нужен. Значение параметра SHA1 Hash (40 символов) нужно скопировать и подставить в команду ниже.
В terminal переходим в каталог с файлом для подписания и выполняем команду:
/opt/cprocsp/bin/cryptcp -signf -detach -cert -der -strict -thumbprint ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ FILE
где ХХХХ... – хэш сертификата, полученный на шаге 1, а FILE – имя файла для подписания (со всеми расширениями, но без пути).
Команда должна вернуть:
Signed message is created.
[ErrorCode: 0x00000000]
Будет создан файл электронной подписи с расширением *.sgn – это отсоединенная подпись в формате CMS с кодировкой DER.
Чтобы каждый раз не работать с терминалом, можно один раз установить Automator Script, с помощью которого подписывать документы можно будет из контекстного меню Finder. Для этого скачиваем архив – скачать [34].
Окно Apple Automator:
System Preferences:
Контекстное меню Finder:
Если содержимое документа не содержит секретов и тайн, то проще всего воспользоваться web-сервисом на портале Госуслуг – https://www.gosuslugi.ru/pgu/eds [35]. Так можно сделать скриншот с авторитетного ресурса и быть уверенным что с подписью все ок.
Автор: Сергей Захаров
Источник [36]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/mac-os/316659
Ссылки в тексте:
[1] РБК: https://www.rbc.ru/technology_and_media/21/07/2017/59721af29a794728e0a2d817
[2] Тензор: https://tensor.ru/uc
[3] #1: https://support.cryptopro.ru/index.php?/Knowledgebase/Article/View/232
[4] #2: https://www.cryptopro.ru/sites/default/files/public/faq/macoscspplugin.pdf
[5] Рутокен: https://www.rutoken.ru/manual/Rutoken_CryptoPro_MacOS.pdf
[6] Корус-Консалтинг: https://www.esphere.ru/assets/download/uc/macos_ep.pdf
[7] УФО Минкомсвязи: https://e-trust.gosuslugi.ru/
[8] Регистрируемся: https://www.cryptopro.ru/user/register
[9] страницы загрузок: https://www.cryptopro.ru/products/csp/downloads
[10] скачать: https://www.cryptopro.ru/sites/default/files/private/csp/40/9963/macos-uni.tgz
[11] страницы загрузок: https://www.rutoken.ru/support/download/drivers-for-mac/
[12] скачать: https://www.rutoken.ru/support/download/get/rtPKCS11-mac-installer.html
[13] страницы загрузок: https://e-trust.gosuslugi.ru/MainCA
[14] https://e-trust.gosuslugi.ru/Shared/DownloadCert?thumbprint=4BC6DC14D97010C41A26E058AD851F81C842415A: https://e-trust.gosuslugi.ru/Shared/DownloadCert?thumbprint=4BC6DC14D97010C41A26E058AD851F81C842415A
[15] https://e-trust.gosuslugi.ru/Shared/DownloadCert?thumbprint=8CAE88BBFD404A7A53630864F9033606E1DC45E2: https://e-trust.gosuslugi.ru/Shared/DownloadCert?thumbprint=8CAE88BBFD404A7A53630864F9033606E1DC45E2
[16] https://e-trust.gosuslugi.ru/Shared/DownloadCert?thumbprint=0408435EB90E5C8796A160E69E4BFAC453435D1D: https://e-trust.gosuslugi.ru/Shared/DownloadCert?thumbprint=0408435EB90E5C8796A160E69E4BFAC453435D1D
[17] сайта УФО Минкомсвязи: https://e-trust.gosuslugi.ru/CA
[18] страницы загрузок: https://e-trust.gosuslugi.ru/CA/View?ogrn=1057812752502
[19] https://e-trust.gosuslugi.ru/Shared/DownloadCert?thumbprint=15EB064ABCB96C5AFCE22B9FEA52A1964637D101: https://e-trust.gosuslugi.ru/Shared/DownloadCert?thumbprint=15EB064ABCB96C5AFCE22B9FEA52A1964637D101
[20] https://e-trust.gosuslugi.ru/Shared/DownloadCert?thumbprint=B9F1D3F78971D48C34AA73786CDCD138477FEE3F: https://e-trust.gosuslugi.ru/Shared/DownloadCert?thumbprint=B9F1D3F78971D48C34AA73786CDCD138477FEE3F
[21] https://e-trust.gosuslugi.ru/Shared/DownloadCert?thumbprint=55EC48193B6716D38E80BD9D1D2D827BC8A07DE3: https://e-trust.gosuslugi.ru/Shared/DownloadCert?thumbprint=55EC48193B6716D38E80BD9D1D2D827BC8A07DE3
[22] https://e-trust.gosuslugi.ru/Shared/DownloadCert?thumbprint=A0D19D700E2A5F1CAFCE82D3EFE49A0D882559DF: https://e-trust.gosuslugi.ru/Shared/DownloadCert?thumbprint=A0D19D700E2A5F1CAFCE82D3EFE49A0D882559DF
[23] репозиторий на GitHub: https://github.com/deemru/chromium-gost/
[24] сайте КриптоПро: https://support.cryptopro.ru/index.php?/Knowledgebase/Article/View/232/0/rbot-s-kriptopro-csp-v-macos
[25] скачать: https://github.com/deemru/chromium-gost/releases/download/71.0.3578.98/chromium-gost-71.0.3578.98-macos-amd64.tar.bz2
[26] страницы загрузок: https://cryptopro.ru/products/cades/plugin%E2%80%A8
[27] скачать: https://cryptopro.ru/products/cades/plugin/get_2_0
[28] страницы загрузок: https://ds-plugin.gosuslugi.ru/plugin/upload/Index.spr
[29] скачать: https://ds-plugin.gosuslugi.ru/plugin/upload/assets/distrib/IFCPlugin.pkg
[30] скачать: https://www.cryptopro.ru/sites/default/files/public/faq/ifc.cfg
[31] https://lkipgost.nalog.ru/lk: https://lkipgost.nalog.ru/lk
[32] https://lkul.nalog.ru: https://lkul.nalog.ru
[33] КриптоАрм: https://cryptoarm.ru/shop/cryptoarm-gost
[34] скачать: https://www.dropbox.com/sh/wtgabq62fkhgn78/AAB4WIzfm2q1H9DWnROiWhpua?dl=0
[35] https://www.gosuslugi.ru/pgu/eds: https://www.gosuslugi.ru/pgu/eds
[36] Источник: https://habr.com/ru/post/450516/?utm_source=habrahabr&utm_medium=rss&utm_campaign=450516
Нажмите здесь для печати.