Установка эцп в java || Установка эцп в java

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

Прежде всего, на сервер системы установите

(JRE) версии не ниже 1.6.

install.bat “C:Program FilesJavajdk1.6.0_20jre”

install.bat “C:Program FilesJavajdk1.6.0_20jre” XXXXX-XXXXX-XXXXX-XXXXX-XXXXX “Your Company”

asn1rt.jarJCP.jarJCPRevCheck.jarJCP_ASN.jar
AsnLite.jarJCPinst.jarJCPRevTools.jarJCryptoP.jar
forms_rt.jarJCPRequest.jarJCPxml.jar

Дополнительные библиотеки Java

Нам понадобится библиотека iscjcp.jar (исходники

), в которой содержится ряд вспомогательных классов для работы с JCP из Caché. Кроме этого, потребуются три open source библиотеки —

(aka XML Security) и

. Их использование регулируется лицензией

Установка эцп в java || Установка эцп в java

Загрузите архив jars.zip с четырьмя перечисленными библиотеками и распакуйте его в папку jrelibext.

В случае использования Windows 7, необходимо выдать полномочия группе «Все» на чтение и выполнение всех библиотек в папке jrelibext.

Настройка и запуск Java Gateway, создание проекций классов

Чтобы стало возможным вызывать Java-классы из Caché/Ensemble, необходимо настроить и запустить Java Gateway, а также создать проекции используемых Java-классов.

insert into %Net_Remote.ObjectGateway(Name, Type, Server, Port, JavaHome) values (‘JCPGate’, ‘1’, ‘127.0.0.1’, ‘55555’, ‘C:Program FilesJavajdk1.6.0_20jre’)

Здесь в поле Name указано значение “JCPGate” – это имя нового Java Gateway. В поле JavaHome необходимо указать путь к JRE, для которой была произведена установка JCP. В поле Port указывается TCP-порт, используемый для общения с этим Java Gateway из Caché.

write ##class(%Net.Remote.Service).StartGateway(“JCPGate”)

write ##class(%Net.Remote.Service).StopGateway(“JCPGate”)

Запускать/останавливать Java Gateway можно из любой области.

do ##class(%Net.Remote.Java.JavaGateway).%ExpressImport(“isc.jcp.JcpFacade”, “55555”)

Здесь 55555 – это номер TCP-порта, который используется для общения с Java Gateway. Этот порт был указан нами ранее при добавлении записи в таблицу %Net_Remote.ObjectGateway.

Читайте также:  Windows 7 SP1 X64 Ultimate 3in1 OEM MAY 2021 (RUS/MULTI 7) by Generation2 скачать через торрент

Проверка ЭЦП во входящих SOAP-сообщениях

Загрузите и распакуйте архив

с исходным кодом классов smev.JcpUtils и smev.JcpSignature. Импортируйте класс

в Caché с помощью Studio, предварительно перейдя в область, где ведется разработка веб-сервисов. Откройте импортированный класс в Studio и отредактируйте значения параметров JAVAGATEWAYPORT и JAVAGATEWAYSERVER, указав соответственно TCP-порт и IP-адрес используемого Java Gateway. Скомпилируйте класс.

Method OnPreSOAP(mode As %String, action As %String, request)
{
  do ##super(mode, action, request)

  #dim stream As %Stream.Object = request

  if '$isObject(stream)
  {
    // на случай MIME attachments
    #dim index As %Integer = %request.NextMimeData("")
    set stream = $select(index="":"", 1:%request.GetMimeData(index))
  }

  if $isObject(stream)
  {
  #dim fault As %SOAP.Fault = ##class(smev.JcpUtils).verifySignatureOnPreSoap(stream)
    if $isObject(fault) set ..SoapFault = fault
  }
}

Это работает на версиях Caché/Ensemble, начиная с 2009.1. Ниже приведен пример веб-сервиса, который осуществляет проверку подписи всех входящих SOAP-сообщений.

Формирование ЭЦП для исходящих SOAP-сообщений веб-сервиса

Далее рассмотрим случай, когда все ответы веб-сервиса должны быть подписаны ЭЦП организации. В такой ситуации на сервере системы размещается хранилище, содержащее секретный ключ, который используется при формировании подписи. Кроме того, должен быть доступен сертификат, соответствующий этому ключу. В библиотеке iscjcp.jar реализована работа с хранилищем типа «FloppyStore». Поэтому, для формирования ЭЦП нам потребуется виртуальная дискета с хранилищем ключей.

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

  1. Установите драйвер, имитирующий FDD привод, например, ImDisk.
  2. Из панели управления Windows запустите программу настройки «ImDisk Virtual Disk Driver» и настройте диск с параметрами:
    • Drive letter: A,
    • Size of virtual disk: 1 Megabyte,
    • Device type: Floppy.
  3. Отформатируйте виртуальную дискету, задав файловую систему FAT.
  4. Распакуйте содержимое архива FDD.zip на диск A:.

В результате описанных манипуляций на диске A: сервера имеем хранилище ключей, содержащее тестовый секретный ключ. Файл A:SelfSigned.cer представляет собой тестовый сертификат, соответствующий секретному ключу.

Вы можете самостоятельно генерировать ключи и сертификаты с помощью КриптоПро JCP. Эти процедуры описаны в документации продукта.

Формирование ЭЦП

Загруженный ранее архив

Читайте также:  Установка эцп на ноутбук

с исходным кодом Caché Object Script содержал класс

. Импортируйте этот класс в Caché с помощью Studio.

Откройте класс smev.JcpUtils в Studio и отредактируйте значение параметра CERTFILENAME, указав полный путь к файлу сертификата – “A:SelfSigned.cer”. Этот сертификат соответствует секретному ключу, который будет использоваться при формировании ЭЦП. Скомпилируйте класс.

do ..SecurityOut.AddElement(##class(smev.JcpSignature).%New())

Чтобы протестировать проверку/формирование ЭЦП веб-сервисом test.TestService, исходный код которого приведен выше, выполним следующие действия.

Оцените статью
ЭЦП Эксперт
Добавить комментарий