diff --git a/docs/Инструкция по обновлению сертификатов.md b/docs/Инструкция по обновлению сертификатов.md new file mode 100644 index 0000000..381cf66 --- /dev/null +++ b/docs/Инструкция по обновлению сертификатов.md @@ -0,0 +1,152 @@ +## Обновление сертификата для подписи + +### Установка ключевой пары ИС, зарегистрированной в ЕСИА + +1. Запросить у руководителя проекта реестра повесток контейнер с новым ключом ИС, зарегистрированной в ЕСИА. + +2. Установить полученную ключевую пару для пользователя, от которого запускается модуль подписания (команды выполняются от имени **ervu**). +Внимание! В следующих командах необходимо заменить ***key_cont.000*** на название контейнера, полученного на предыдущем шаге. + +``` +mkdir /var/opt/cprocsp/keys/ervu/ +cp -r key_cont.000/ /var/opt/cprocsp/keys/ervu/ +chmod 700 /var/opt/cprocsp/keys/ervu/key_cont.000 +chmod 600 /var/opt/cprocsp/keys/ervu/key_cont.000/* +chown -R ervu:ervu /var/opt/cprocsp/keys/ervu/key_cont.000/ +/opt/cprocsp/bin/amd64/csptest -absorb -certs -autoprov +``` + +3. Получить перечень сертификатов: +``` +/opt/cprocsp/bin/amd64/certmgr -list +``` + +Для нового сертификата получить следующие значения: +- Поле "SHA1 отпечаток": это значение нужно будет указать в конфигурационном файле модуля подписания в качестве настройки +- Поле "Ссылка на ключ": убедиться, что значение равно "Есть" (иначе необходимо проверить выполнение предыдущих шагов) +- Поля "URL сертификата УЦ": по ссылкам, указанным в этом значении, скачать сертификаты УЦ и установить их (описано далее) +- Поля "URL списка отзыва": в случае отсутствия доступа к УЦ, по ссылкам, указанным в этом значении, скачать CRL и установить их (описано далее) + +4. Установить сертификаты УЦ (поля "URL сертификата УЦ" в свойствах сертификата). Для каждого сертификата выполнить команду от имени **root**: +``` bash +/opt/cprocsp/bin/amd64/certmgr -install -store mRoot -file .cer +``` + +5. В случае отсутствия доступа к УЦ, установить CRL (поле "URL списка отзыва" в свойствах сертификата). Для каждого CRL выполнить команду от имени **ervu**: +``` bash +/opt/cprocsp/bin/amd64/certmgr -install -store uCA -crl -file .crl +``` + +6. Проверить цепочку сертификатов (команда выполняется от имени **ervu**): +``` bash +/opt/cprocsp/bin/amd64/certmgr -list -thumbprint -chain +``` + +Результатом команды должна быть строка "Цепочка сертификатов: Успешно проверена." + +Подробнее о проверке цепочки сертификатов здесь: https://www.altlinux.org/%D0%9A%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%9F%D1%80%D0%BE#%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0_%D1%86%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B8_%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D0%B2 + +7. (опционально) Сделать тестовую подпись с помощью установленного контейнера и полученных значений \ и \: +``` bash +touch test.txt +/opt/cprocsp/bin/amd64/cryptcp -signf -thumbprint -pin -errchain ./test.txt +rm -f test.txt test.txt.sgn +``` + +### Настройка ervu-sign-module. + +1. В конфигурационном файле /etc/ervu-sign-module.conf в секции [sign] прописать новые значения: +``` +[sign] +sign_cert_thumbprint = sha1_thumbprint_of_signer_cert # SHA1 отпечаток сертификата, которым ИС подписывает секрет +sign_cert_password = **** # пароль от контейнера +``` + +2. Перезапустить службу: +``` +systemctl restart ervu-sign-module +``` + +3. (опционально) Удалить старый сертификат для подписи + + 3.1. Удалить старый сертификат из хранилища: + ``` + /opt/cprocsp/bin/amd64/certmgr -delete -thumbprint + ``` + где - SHA1 отпечаток старого сертификата + + 3.2. Удалить директорию со старым контейнером: + ``` + rm -rf /var/opt/cprocsp/keys/ervu/ + ``` + где - название директории со старым контейнером + + +## Обновление сертификата ЕСИА для проверки ЭП маркера доступа + +### Установка сертификата ЕСИА. + +1. Скачать сертификаты тестовой и продуктивной сред ЕСИА, используемые для формирования электронных подписей ответов как поставщика, по ссылке: https://esia.gosuslugi.ru/public/esia.zip + +2. Из списка сертификатов выбрать тот, который подходит под конфигурацию стенда (в зависимости от алгоритма подписи и от того, является ли среда тестовой или продуктивной). + +3. Установить выбранный сертификат для пользователя, выполнив команду от имени **ervu**: +``` +/opt/cprocsp/bin/amd64/certmgr -install -file '.cer' +``` +где .cer - название файла выбранного сертификата. + +Результатом команды будет список полей сертификата. Из него необходимо получить следующие значения: +- Поле "SHA1 отпечаток": это значение нужно будет указать в конфигурационном файле модуля подписания в качестве настройки . +- Поле "Алгоритм подписи": проверить, что значение совпадает с настройками ИС в ЕСИА. +- Поле "Истекает": проверить, что срок действия сертификата не истёк. +- Поля "URL сертификата УЦ": по ссылкам, указанным в этом значении, скачать сертификаты УЦ и установить их (описано далее) +- Поля "URL списка отзыва": в случае отсутствия доступа к УЦ, по ссылкам, указанным в этом значении, скачать CRL и установить их (описано далее) + +4. Установить сертификаты УЦ (поля "URL сертификата УЦ" в свойствах сертификата). Для каждого сертификата выполнить команду от имени **root**: + +``` bash +/opt/cprocsp/bin/amd64/certmgr -install -store mRoot -file .cer +``` + +5. В случае отсутствия доступа к УЦ, установить CRL (поле "URL списка отзыва" в свойствах сертификата). Для каждого CRL выполнить команду от имени **ervu**: + +``` bash +/opt/cprocsp/bin/amd64/certmgr -install -store uCA -crl -file .crl +``` + +6. Проверить цепочку сертификатов (команда выполняется от имени **ervu**): + +``` bash +/opt/cprocsp/bin/amd64/certmgr -list -thumbprint -chain +``` + +Результатом команды должна быть строка "Цепочка сертификатов: Успешно проверена." + +Подробнее о проверке цепочки сертификатов здесь: https://www.altlinux.org/%D0%9A%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%9F%D1%80%D0%BE#%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0_%D1%86%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B8_%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D0%B2 + +### Настройка ervu-sign-module. + +1. В конфигурационном файле /etc/ervu-sign-module.conf в секции \[verify\] добавить новое значение: + +``` +[verify] +esia_cert_thumbprint = old_esia_cert_thumbprint,esia_cert_thumbprint # список SHA1 отпечатков сертификатов ЕСИА, указанных через запятую (без пробелов) +``` + +где - SHA1 отпечаток старого сертификата ЕСИА. + +Примечание. SHA1 отпечаток старого сертификата ЕСИА необходимо оставить в списке esia_cert_thumbprint до тех пор, пока срок его действия не истечет. + +2. Перезапустить службу: + +``` +systemctl restart ervu-sign-module +``` + +3. (опционально) Удалить старый сертификат ЕСИА. + +``` +/opt/cprocsp/bin/amd64/certmgr -delete -thumbprint +``` +где - SHA1 отпечаток старого сертификата ЕСИА. \ No newline at end of file diff --git a/Инструкция по установке.md b/Инструкция по установке.md index 5ad3274..495c9cd 100644 --- a/Инструкция по установке.md +++ b/Инструкция по установке.md @@ -59,7 +59,7 @@ chown -R ervu:ervu /var/opt/cprocsp/keys/ervu/key_cont.000/ - Поле "SHA1 отпечаток": это значение нужно будет указать в конфигурационном файле модуля подписания в качестве настройки \ - Поле "Ссылка на ключ": убедиться, что значение равно "Есть" (иначе необходимо проверить выполнение предыдущих шагов) - Поля "URL сертификата УЦ": по ссылкам, указанным в этом значении, скачать сертификаты УЦ и установить их (описано далее) -- Поля "URL списка отзыва": по ссылкам, указанным в этом значении, скачать CRL и установить их (описано далее) +- Поля "URL списка отзыва": в случае отсутствия доступа к УЦ, по ссылкам, указанным в этом значении, скачать CRL и установить их (описано далее) 4. Установить сертификаты УЦ (поля "URL сертификата УЦ" в свойствах сертификата). Для каждого сертификата выполнить команду от имени **root**: ``` bash @@ -83,7 +83,7 @@ chown -R ervu:ervu /var/opt/cprocsp/keys/ervu/key_cont.000/ 7. (опционально) Сделать тестовую подпись с помощью установленного контейнера и полученных значений \ и \: ``` bash touch test.txt -/opt/cprocsp/bin/amd64/cryptcp -signf -thumbprint -errchain ./test.txt +/opt/cprocsp/bin/amd64/cryptcp -signf -thumbprint -pin -errchain ./test.txt rm -f test.txt test.txt.sgn ``` @@ -113,7 +113,7 @@ rm -f test.txt test.txt.sgn - Поле "Алгоритм подписи": проверить, что значение совпадает с настройками ИС в ЕСИА. - Поле "Истекает": проверить, что срок действия сертификата не истёк. - Поля "URL сертификата УЦ": по ссылкам, указанным в этом значении, скачать сертификаты УЦ и установить их (описано далее) -- Поля "URL списка отзыва": по ссылкам, указанным в этом значении, скачать CRL и установить их (описано далее) +- Поля "URL списка отзыва": в случае отсутствия доступа к УЦ, по ссылкам, указанным в этом значении, скачать CRL и установить их (описано далее) 4. Установить сертификаты УЦ (поля "URL сертификата УЦ" в свойствах сертификата). Для каждого сертификата выполнить команду от имени **root**: ``` bash