Запуск

Java 8
java -jar -Dspring.cloud.config.enabled=false -XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC -XX:+UseParNewGC ./signer-service-0.9.9-b51.jar


Java 17
java -jar -XX:+HeapDumpOnOutOfMemoryError -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:MaxGCPauseMillis=75 ./signer-service-2.0.0.jar

Частина імені застосування, яка відповідає за номер збірки, буде відрізнятися для різних збірок. В прикладі вище даа частина представлена значенням "b51".

Застосування підтримує всі можливості зовнішнього конфігурування. які надає Spring Boot (опис тут). Найбільш інтуїтивним є варіант, коли конфігурація знаходиться у папці застосування у файлі application.yaml (формат YAML) чи application.properties (Java configuration file).

Параметри конфігурації

Загальні

Назва параметраYAML варіантОпис
server.port=9092
server:
port: 9092
Порт, через який здійснюється взаємодія з Сервером.
spring.main.banner-mode=off
spring:
  main:
    banner-mode: "off"
Вимикається виведення текстового банера "Spring Boot" при старте застосування
logging.file.enable=truelogging:
    file.enable: true

true - ввімкнути логування у файл
false - вимкнути логування у файл

За замовчуванням, якщо не вказано параметр та його значення, - true.

logging.file=signer-server.log
logging:
file: signer-server.log
Ім'я файлу для логування подій застосування.
logging.path=/var/log/cix509/signer-server
logging:
path: /var/log/cix509/signer-server
Шлях до каталогу, де буде зберігатися поточний лог-файл та архів логів.
logging.console.enable=truelogging:
    console.enable: true

true - ввімкнути логування в консоль (стандартне виведення)
false - вимкнути логування в консоль (стандартне виведення)

За замовчуванням, якщо не вказано параметр та його значення, - true.

logging.pattern.console=%.-0m
logging:
pattern: console: "%.-0m"

(warning) Застаріла опція. Використовується logging.console.enable.

Вимикає виведення повідомлень логу в стандартне виведення (консоль).

spring.cloud.config.enabled
spring:
  cloud:
    config:
enabled: false

Вимикає роботу з сервером віддаленого конфігурування.

Значення параметра має бути обов'язкового встановлено в "false", якщо сервер буде працювати в standalone режимі без застосування сервера віддлаленого конфігурування на базі Spring Cloud Config Server.

Параметри застосування

Назва параметраYAML варіантОпис
sjwsa.workerThreadNumber=4
sjwsa:
workerThreadNumber: 4

Число одночасних працюючих потоків для виконання криптографічних операцій.
Доступні значення:
1-10;
4: за замовчуванням, якщо параметр не вказано.  

sjwsa.accessTokenUptime=3600
sjwsa:
accessTokenUptime: 3600

Час, впродовж якого діє дозвіл на виконання операції з ЕП.
Доступні значення:
10-18000с;
3600с: за замовчуванням, якщо параметр не вказано.

sjwsa.caConfigFile=ca1.properties
sjwsa:
caConfigFile: ca1.properties

Файл з параметрами підключення до серверів (TSA, OCSP, LDAP, CMP) ЦСК.
Якщо назва файлу починається з jar. , наприклад "jar. ca2.properties", то файл буде завантажено з ресурсів застосування, які знаходяться у jar архіві.

Якщо назва файлу не має префіксу, то у залежності від значення, буде використовуватися відносний чи абсолютний шлях у файловій системі операційного середовища, в якому виконується Сервіс.
Файл повинен мати Java configuration file формат. Опис параметрів наведено нижче.

Доступні вбудоавні файли з параметрами підключення до КНЕДП

КНЕДПНазва файлу

Центральний засвідчувальний орган

jar. ca/ca-czo.properties

КНЕДП ДПС

jar. ca/ca-dfs.properties

КНЕДП Державної прикордонної служби України

jar. ca/ca-dpsu.properties

КНЕДП ринку електричної енергії

jar. ca/ca-energy.properties

КНЕДП "MASTERKEY" ТОВ "АРТ-МАСТЕР"

ca-masterkey.properties

КНЕДП Міністерства внутрішніх справ України

jar. ca/ca-mvs.properties

КНЕДП органів юстиції України

jar. ca/ca-myust.properties

КНЕДП Національного банку України

jar. ca/ca-nbu.properties

КНЕДП АТ КБ "ПРИВАТБАНК"

jar. ca/ca-privat.properties

Тестовий ЦСК Сайфер

jar. ca/ca-test-cipher.properties

Тестовий ЦСК ІІТ

jar. ca/ca-test-iit.properties

КНЕДП ТОВ "КС"

jar. ca/ca-tovks.properties

КНЕДП ТОВ "Центр сертифікації ключів "Україна"

jar. ca/ca-ukraine.properties

КНЕДП Публічного акціонерного товариства "УкрСиббанк"

jar. ca/ca-ukrsib.properties

КНЕДП ДП "УСС"

jar. ca/ca-uss.properties

КНЕДП Укрзалізниці

jar. ca/ca-uz.properties

КНЕДП Збройних Сил

jar. ca/ca-zsu.properties
КНЕДП АТ Ощадбанкjar. ca/ca-oschad.properties
КНЕДП Офіс генерального прокурора Україниjar. ca/ca-gpu.properties
sjwsa.caCertificateChain=address1;address2
sjwsa:
caCertificateChain: address1;address2

Адреса ресурсів (файлів) (через крапку з комою зі списком сертифікатів КНЕДП.
Доступні значення:
URL ресурсу у вигляді http://0.0.0.0/certificates_chain_path

Для локального файлу: file:///CACertificates.p7b

sjwsa.iitCaConfigUrl=iitCaConfigAddress
sjwsa: 
iitCaConfigUrl: iitCaConfigAddress

Aдреса ресурсу (файлу) з описом деяких параметрів КНЕДП, які використовують бібліотеки ІІТ. Дані необхідні для перевірки підпису без сертифікату підписанта.
Доступні значення:
URL ресурсу в вигляді http://0.0.0.0/iit_ca_config_address

Для локального файлу: file:///CAs.json

sjwsa.keyGenerationProxy=proxyAddress
sjwsa:
keyGenerationProxy: proxyAddress

Адреса прокссі сервера для відправки запитів на реєстрацію нових ключів.
Доступні значення:
URL сервера у вигляді http://0.0.0.0/proxy_path

sjwsa.ocspUrlMapper=mapperRules
sjwsa:
ocspUrlMapper: mapperRules
Правила трансляції адрес OCSP сервера.

Доступні значення:
Правила трансляції у вигляді: output_url1=input_url1;output_url2=input_url2

sjwsa.voidAutoStart=false
sjwsa:
voidAutoStart: false

true - виконати старт веб-сервісу без особистих ключів;
* false - виконати старт веб-сервісу зі вказаними особистими ключами

sjwsa.keyStorage=keyStoragePath
sjwsa:
keyStorage: keyStoragePath

Шлях до ключового контейнера (носія).
Підтримувані префікси:
#. - контейнер буде завантажено з носія, який працює в пасивному режимі;
@. - для роботи з активним носієм буде використовуватися PKCS#11 інтерфейс;
jar. - контейнер буде завантажено з ресурсів застосування, які знаходяться у jar архіві.
без префіксу - в залежності від значення, буде використовуватися відносний чи абсолютний шлях у файловій системі операційного середовища, в якому виконується Сервіс.

sjwsa.keyStoragePassword=password
sjwsa:
keyStoragePassword: password

Пароль (пін-код) до ключовогок контейнеру (захищеного носія).

sjwsa.cryptoLibDebug
sjwsa:
cryptoLibDebug: false
true - формувати та виводити відладочні повідомлення бібліотеки криптофункцій;
* false - не формувати та не виводити відладочні повідомлення бібліотеки криптофункцій.
sjwsa.watchDogEnabled=falsesjwsa:
    watchDogEnabled: false
true - процес моніторингу та видалення прострочених сесій активно;
* false - процес моніторингу та виделання прострочених сесій неактивно..
sjwsa.watchDogPeriod=1800sjwsa:
    watchDogPeriod: 1800

Період запуску процесу видалення прострочених сесій, в секундах.

Параметр використовується лише, якщо процес моніторингу та видалення прострочених сесій активно.

sjwsa.ticketTimeToLive=3600sjwsa:
    ticketTimeToLive: 3600

Інтервал часу, після завершення якого сесія вважається простроченою, в секундах.

Параметр використовуєтьсья лише, якщо процес моніторингу та видалення прострочених сесій активно.

sjwsa.watchDogTicketPerIteration=1000sjwsa:
    watchDogTicketPerIteration: 1000

Максимальна кількість сесій, яке прцоес моніторингу та видалення прострочених сесій опрацьовує перед паузою (sjwsa.watchDogInterIterationDelay).

Параметр використовується лише, якщо процес моніторингу та видалення прострочених сесій активно.

sjwsa.watchDogInterIterationDelaysjwsa:
    watchDogInterIterationDelay: 100

Пауза, яку процес моніторингу та видалення прострочених сесій робить після обробки максимальної кількості сессій (sjwsa.watchDogTicketPerIteration), в мілісекундах.

Параметр використовується, якщо процес моніторингу та видалення прострочених сесій активно.

* - значення за замовчуванням

Конфігурація за замовчуванням

spring:
  application:
    name: ccs-signer-service

server:
  port: 9092

logging:
  file: ccs-signer-service.log
  path: .
  pattern:
        file: "%d{yyyy-MM-dd HH:mm:ss.SSS} -%5p ${PID} [%thread] %-20.20logger{20} - %m%n %wEx"

sjwsa:
  voidAutoStart: true
  ocspUrlMapper: http://uakey.com.ua/services/ocsp=http://uakey.com.ua;http://uakey.com.ua/services/ocsp=http://uakey.com.ua/

Приклад конфігурації

logging:
  path: /var/log/cix509/signer-server
  console.enable: false

sjwsa:
  workerThreadNumber: 4
  accessTokenUptime: 3777
  caCertificateChain: https://cipher.kiev.ua/files/sjwsa/CACertificates.p7b
  voidAutoStart: false
  cryptoLibDebug: true
  iitCaConfigUrl: https://cipher.kiev.ua/files/sjwsa/CAs.json
  caConfigFile: ca1.properties
  keyStorage: ivanov.pfx
  keyStoragePassword: 12345678

Пример файла с параметрами подключения к тестовому ЦСК "Сайфер"

################################################################################
#
# Конфігураційний файл Центру сертифікації ключів
# Версія 1.0
# 29.09.2016
#
################################################################################
# Доступні параметри: ################################################################################
#
# caConfigName           назва ЦСК
#
# caManufacturer         виробник ЦСК
#
# caConfigId             ідентифікатор ЦСК
#
# ldapServer            назва параметру адреси LDAP-сервера
#                       у форматі ldap://адрес[:порт],
#                       наприклад ldap://192.168.0.123.
#
# ldapBaseDn            базова адреса в ієрархії LDAP.
#
# ldapLogin             ім'я користувача для входу в LDAP.
#
# ldapPassword          пароль для входу в LDAP.
#
# tspServer             адреса сервера електронних позначок часу у форматі 
#                       server:port, де:
#                           server - доменне ім'я чи IP-адреса,
#                           port - номер порту сервера TSA.
#
# ocspServer            адреса сервера OCSP у форматі server:port, де:
#                           server - домене ім'я чи IP-адреса,
#                           port - номер порту сервера OCSP.
#
# cmpServer             адреса сервера CMP у форматі server:port, де:
#                           server - домене ім'я чи IP-адреса,
#                           port - номер порту сервера CMP.
#
# useProxyServer        позначка використання проксі-серверу.
#                       Доступні значення:
#                           true: проксувати запити LDAP, TSP, OCSP
#                           false: не проксувати LDAP, TSP, OCSP (за 
#                           замовчуванням,якщо параметр не вказано);
#
# proxyServer          адреса проксі-сервера.
#                      Доступні значення:
#                           URL сервера у вигляді http://0.0.0.0/proxy_path
#
# cdpAddress           адреса сертифікату видавця
#                      Доступні значення:
#                           URL сервера у вигляді http://0.0.0.0/certificate_path
#
# acdpAddress          резервна адреса сертифікату видавця
#                      Доступні значення:
#                           URL сервера у вигляді 
#                           http://0.0.0.0/certificate_path
# ################################################################################
caConfigName=Тестовий ЦСК Сайфер
caManufacturer=CIPHER
caConfigId=testIitCipher
ldapServer=ldap://46.182.83.77
ldapBaseDn=dc=cipher,dc=com
ldapLogin=cn=read,ou=accounts,dc=cipher,dc=com
ldapPassword=mY2daCn8
tspServer=46.182.83.77:318
ocspServer=46.182.83.77:5001
#useProxyServer=true
#proxyServer=http://proxy.cipher.kiev.ua:80/cipher-proxy
#proxyServer=http://localhost:8080
#proxyServer=http://cipher-proxy.cfapps.io

Приклад запуску лише для перевірки підпису

java -jar -Dsjwsa.caCertificateChain=https://czo.gov.ua/folderverify/Data/CACertificates.p7b -Dsjwsa.iitCaConfigUrl=https://cipher.kiev.ua/files/sjwsa/CAs.json -Dspring.cloud.config.enabled=false -XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC -XX:+UseParNewGC signer-service-0.9.9-b51.jar
  • No labels