Установка модулей криптографии на сервере

Для работы криптопровайдеров требуется установить на сервере соответсвующие модули, загрузить которые можно из следующих источников:

После копирования JAR-файлов в каталог сервера перезапустите сервер.

Установка Bouncy Castle

Чтобы установить модули Bouncy Castle, выполните следующие действия:

Примечание: Минимальная поддерживаемая версия — 1.60.

КриптоПро

Установка модулей КриптоПро:

Установка КриптоПро JCP

Чтобы установить модули КриптоПро JCP, выполните следующие действия:

  • Перейдите по ссылке https://www.cryptopro.ru/products/csp/jcp и нажмите Загрузка файлов:

  • Создайте учетную запись (вкладка Регистрация) или войдите под своей учетной записью, если она у вас есть.
    Примечание: Демонстрационная версия КриптоПро JCP работает в течение 90 дней.
  • Скачайте архив с самой новой сертифицированной версией КриптоПро JCP и JTLS для JVM:

  • Распакуйте архив и следующие файлы скопируйте в каталог lib/chassis/modules каталога исполняемых файлов сервера (W, L):
    • AdES-core.jar
    • ASN1P.jar
    • asn1rt.jar
    • CAdES.jar
    • cmsutil.jar
    • cpSSL.jar
    • forms_rt.jar
    • J6CF.jar
    • J6Oscar.jar
    • JCP.jar
    • JCPRequest.jar
    • JCPRevCheck.jar
    • JCPRevTools.jar
    • JCPxml.jar
    • JCryptoP.jar
    • Rutoken.jar
    • tls_proxy.jar
    • XAdES.jar

Установка КриптоПро Java CSP

Чтобы установить модули КриптоПро Java CSP, выполните следующие действия:

  • Перейдите по ссылке https://www.cryptopro.ru/products/csp/jcsp и нажмите Загрузка файлов:

  • Создайте учетную запись (вкладка Регистрация) или войдите под своей учетной записью, если она у вас есть.
    Примечание: Демонстрационная версия КриптоПро Java CSP работает в течение 90 дней.
  • Скачайте архив с самой новой версией КриптоПро Java CSP и JTLS для JVM:

  • Распакуйте архив и следующие файлы скопируйте в каталог lib/chassis/modules каталога исполняемых файлов сервера (W, L):
    • AdES-core.jar
    • ASN1P.jar
    • asn1rt.jar
    • CAdES.jar
    • cmsutil.jar
    • cpSSL.jar
    • forms_rt.jar
    • J6CF.jar
    • J6Oscar.jar
    • JCP.jar
    • JCPRequest.jar
    • JCPRevCheck.jar
    • JCPRevTools.jar
    • JCPxml.jar
    • JCryptoP.jar
    • JCSP.jar
    • Rutoken.jar
    • tls_proxy.jar
    • XAdES.jar

Примечания

  • При использовании одновременно JCP и Bouncy Castle рекомендуется брать модули Bouncy Castle из поставки JCP (можно найти в папке dependencies архива).
  • По умолчанию хранилище КриптоПро у каждого пользователя ОС своё. Необходимо учитывать это при смене пользователя, от имени которого работает сервер, или при добавлении ключей и сертификатов вручную через утилиты КриптоПро:

Примеры для тестирования

Bouncy Castle:

метод Скрипт()
    попытка
        знч Генератор = новый ГенераторСертификата(АлгоритмАсимметричногоШифрования.Гост3410_2012)
        Генератор.УстановитьАтрибутСубъекта(АтрибутX500.Имя, Сотрудник)
        Генератор.УстановитьАтрибутСубъекта(АтрибутX500.Организация, "ООО Рога и Копыта")
        Генератор.ДействителенПо = Момент.Сейчас() + 730д
      
        знч Хранилище = новый ХранилищеPkcs12()
        Хранилище.ДобавитьЗакрытыйКлюч(Сотрудник, Генератор.ЗакрытыйКлюч, Секрет, Генератор.СоздатьСертификат())
 
        Консоль.Записать("PFX: " + Хранилище.ВБайты())
    поймать Ошибка: ИсключениеКриптографии
        Консоль.Записать("Ошибка: " + Ошибка);
;

КриптоПро:

метод Скрипт()
    попытка
        знч Данные = "Проверка подписи Крипто Про".ВБайты()
 
        знч Криптопровайдер = Криптография.ПолучитьКриптоПро()
        знч Хранилище = новый ХранилищеКриптоПро()
 
        знч Ключ = Хранилище.НайтиЗакрытыйКлюч("Тест", "12345")
        знч Сертификат = Хранилище.НайтиСертификат("Тест")
 
        знч Вычислитель = новый ВычислительПодписи(Криптопровайдер, Сертификат, Ключ, "GOST3411_2012_256")
        знч Подпись = Вычислитель.Подписать(Данные)
 
        знч Верификатор = новый ВерификаторПодписи(Криптопровайдер, Подпись)
        если не Верификатор.Проверить(Данные)
            Консоль.Записать("Ошибка проверки подписи");
 
        Консоль.Записать("Данные: " + Данные)
        Консоль.Записать("Подпись: " + Подпись)
    поймать Ошибка: ИсключениеКриптографии
        Консоль.Записать("Ошибка: " + Ошибка);
;