Přeskočit obsah

Manuální instalace PMC POS

Níže jsou popsány kroky k manuální instalaci PMC POS.

Založení nové pos

Viz Založení nové POS.

Stažení programu

Program je dostuný na sdíleném disku - \\GRNSRVPHA\Vyvoj\Software\PMC_POS.

Adresář je rozdělený podle verzí a prostředí. Mezi prostředími jsou rozdíly v následujících věcech:

  • certifikáty
  • konfigurace
  • instalační soubor

Pro manuální instalaci potřebujeme tyto soubory z podadresáře src:

  • pmc-pos-x.x.x.jar
  • application.properties
  • cert/*
  • msvcr/*
  • config/*
  • xslt/*
  • winsw.exe
  • winsw.xml (Soubory winsw.* pouze v případě, že budeme chtít aplikaci provozovat jako službu. Pokud bychom ji chtěli spouštět manuálně, tyto soubory nejsou potřeba.)
  • java.zip (Můžeme a nemusíme použít přiloženou javu. Je možné použít i systémovou, pokud se jedná o javu 11 a je v ní správně nahraný certifikát mq serveru - viz kroky níže.)

Získání klientského certifikátu

Certifikát se získává httm requestem na endpoint /scep/pos/cert. Můžeme jej zavolat pomocí utility curl (krerá by měla být součástí moderních windows). Viz příklad níže:

curl -f -k  --location --request POST "https://test.parkcloud.cz/scep/pos/cert" --data-urlencode "posName=name_of_pos"  --header "Authorization: Basic  c2NlcGFwaToyMDIyc2NlcGFwaQ=="  -o  ./client.p12

Tímto se certifikát uloží do souboru client.p12.

info

-f (--fail): Pokud dojde k chybě na straně severu, nevrátí se tělo, ale pouze číslo chyby.
-k (--insecure): Neověřuje platnost certifiátu.
-L (--location): Pokud je na serveru redirection, curl pošle nový request na url, kam se stránka přesunula.
-X (--request) POST: Metoda requestu.
-o (--output): Soubor, do kterého se zapíše výstup.
--header: Data, která se přidají do hlavičky requestu.
--data-urlencode <data>: Data, která se serveru pošlou. Je na nich provedeno url encode. V našem případě zasíláme název POS. String za znakem "=" tedy vyměníme za ten, který jsme zadali při vytváření POS v prvním kroku.

Request musí skončit statusem 200. V případě, že je status jiný, došlo k nějaké chybě. Každý certifikát je možné získat pouze jednou. Pokud už byl certifikát vydán a zkusíme jej získat znovu, request skončí chybou.

Chyby, ke kterým může při získávání requestu dojít

curl: (22) The requested URL returned error: 400: K této chybě může dojít v případě, že je vyžádán certifikát k POS, ke kteŕe již byl v minulosti vydán.
curl: (22) The requested URL returned error: 401: Chybí hlavička s přihlašovacími údaji, nebo jsou přihlašovací údaje špatné.
curl: (22) The requested URL returned error: 404: K této chybě může dojít v případě, že jméno certifikátu v requestu se neshoduje s žádnou POS vytvořenou v systému.

Import klientského certifikátu do systému

Soubor, který získáme zasláním requestu výše do systému nahrajeme dvojím poklikáním a následováním průvodce.

Při instalaci certifikátu míte na výběr dvě možnosti - Current User nebo Local Machine. Rozdíl mezi nimi je ten, že v případě vybrání Current User se certifikát nainstaluje pouze uživateli, který provádí instalaci. Tedy on bude jediný, kdo bude moci PMC POS používat. Při výběru druhé možnosti se certifikát nahraje všem uzivatelům na počítači.

Manuální instalace POS 01

V dalším prolu nic neměníme, klikneme Next.

Manuální instalace POS 02

Heslo je prázdné, tedy nic nevyplňujeme a klikneme Next.

Manuální instalace POS 03

Umístění necháme vybrat automaticky.

Manuální instalace POS 04

Import dokončíme stisknutím tlačítka Finish.

Manuální instalace POS 05

Po dokončení bychom měli dostat informaci o úspěšném importu.

Manuální instalace POS 06

Import certifikační autority do systému

Ve složce cert se nachází soubory intermediate-ca.crt a root-ca.crt. Aby na webu fungovalo ověření klientského certifikátu, je třeba tyto certifikáty nahrát do systému. To lze udělat dvěma způsoby.

Z prohlížeče souborů

Manuální instalace POS 07

V nově otevřeném okně stiskneme na tlačítko Install Certificate....

Manuální instalace POS 08

Stejné možnosti jako při importu uživatelského certifikátu

Manuální instalace POS 09

Manuální instalace POS 10

Přes powershell

Import-Certificate -FilePath .\cert\root-ca.crt -CertStoreLocation Cert:\LocalMachine\CA\
Import-Certificate -FilePath .\cert\root-ca.crt -CertStoreLocation Cert:\CurrentUser\CA\
Import-Certificate -FilePath .\cert\root-ca.crt -CertStoreLocation Cert:\LocalMachine\Trust\
Import-Certificate -FilePath .\cert\root-ca.crt -CertStoreLocation Cert:\CurrentUser\Trust\
Import-Certificate -FilePath .\cert\root-ca.crt -CertStoreLocation Cert:\LocalMachine\Root\
Import-Certificate -FilePath .\cert\root-ca.crt -CertStoreLocation Cert:\CurrentUser\Root\

Import-Certificate -FilePath .\cert\intermediate-ca.crt -CertStoreLocation Cert:\LocalMachine\CA\
Import-Certificate -FilePath .\cert\intermediate-ca.crt -CertStoreLocation Cert:\CurrentUser\CA\
Import-Certificate -FilePath .\cert\intermediate-ca.crt -CertStoreLocation Cert:\LocalMachine\Trust\
Import-Certificate -FilePath .\cert\intermediate-ca.crt -CertStoreLocation Cert:\CurrentUser\Trust\

Problémy s některými prohlížeči

Oběma způsoby výše by se certifikáty měly nainstalovat také do prohlížeče, ale není to zaručeno. Ne každý prohlížeč používá systémového správce certifikátů. Pro jistotu je možné certifikáty nainstalovat také přimo do prohlížeče (nebo alespoň zkontrolovat, že v něm již jsou). V prohlížeči Google Chrome se to dělá takto:

Do prohlížeče zadáme adresu chrome://settings/security a vybereme správce certifikátů.

Manuální instalace POS 11

Je třeba, aby v záložce Osobní (Personal) byl certitikát s názvem, který se shoduje s POS a je vydaný certifikační autoritou GREEN Center s.r.o... (podle prostředí). Pokud tam není, importujeme jej tlačítkem Import... - a vybereme soubor .p12, který jsme získali ze serveru.

Manuální instalace POS 12

V záložce "Trusted Root Certification Authorities" nebo "Důvěryhodné kořenové certifikační autority" se musí nacházet certifikát GREEN Center s.r.o. Root Certification Authority. Pokud tam není, naimportujeme jej tlačítkem Import.... Jedná se o soubor root-ca.crt ve složce cert.

V záložce "Intermediate Certification Authorities" nebo "Zprostředkující certifikační autority" musí být certifikát vydaný pro GREEN Center s.r.o. PMCXX CA (přesný název závisí na prostředí). Pokud tam není, naimportujeme jej. Jedná se o soubor intermediate-ca.crt ve složce cert.

Po importování certifikátů je stále vysoká pravděpodobnost, že ověření klientského certifikátu nebude fungovat. K tomu, aby fungovalo je třeba prohlížeč kompletně restartovat.

Import certifikační autority do javy

Do javy, kterou spouštíme aplikaci je třeba naimportovat certifikát mq serveru. Ten se nachází v souboru cert/amq-server.pem. Jako příklad uvedu import certifikátu do javy, kterou jsme stáhli ze společného disku. Úplně stejně lze ale naimportovat certifikát do systémové javy.

  1. Rozbalíme soubor java.zip do složky, ve které se nachází ostatní soubory související s PMC POS.

  2. V tomto umístění si spustíme cmd a v něm následující příkaz

.\java\bin\keytool.exe -import -alias amq-server -keystore ".\java\lib\security\cacerts" -file ".\cert\amq-server.pem" -noprompt -storepass "changeit"

info

.\java\bin\keytool.exe: Umístění binárního souboru keytool.exe.
-import: Importujeme certifikát.
-alias <alias>: Název certifikátu v keystore - nemá vliv na funkčnost a musí být originální. Pokud bychom chtěli importovat více certifikátů, každý musí mít svůj alias.
-keystore <path>: Cesta k souboru do kterého java ukládá certifikáty.
-file <file>: Soubor, který chceme importovat.
-noprompt: Nechceme manuálně potvrzovat správnost certifikátu
-storepass <pass>: Heslo k truststore, defaultně je heslo "changeit"

Jako výstup bychom měli vidět text Certificate was added to keystore.

Knihovny msvcr71.dll a msvcr100.dll

Soubory msvcr/msvcr71.dll a msvcr/msvcr100.dll je třeba nakopírovat do C:\Windows\System32. Jakmile je tam nakopírujete, můžete je ze zdrojové složky vymazat. Bez těchto knihoven by aplikace vůbec nenaběhla, nebo by nefungovala obsluha periferií (čtečky, tiskárny...).

Konfigurace a spuštění PMC POS

Konfigurace

V konfiguračním souboru (application.properties) je třeba udělat několik úprav. Konkrétně tyto položky závisí na prostředí/na názvu POS.

# (1)!
pmc.pos.qm.url = ssl://10.0.0.25:61617
# (2)!
pmc.pos.qm.username = pos_broker
# (3)!
pmc.pos.qm.password = xxxxxxxxxx
# (4)!
pmc.pos.qm.posid = pos001
  1. url MQ serveru, pro produkční prostředí je to ssl://pmc.parkcloud.cz:61617
  2. uživatelské jméno
  3. heslo k uživateli
  4. název POS - musí sedět s názvem zadaným v certifikátu - se jménem POS - viz Založení POS v PMC.
Spuštění

Aplikaci spustíme příkazem

"./java/bin/java.exe" -jar pmc-pos-1.5.6.jar

Do konzole začne aplikace vypisovat log. Pokud v logu uvidíme něco jako:

2024-23-25 14:25:08.969 [main] [INFO ] 'eu.scrumware.pmc.mq.Client' - MQClient created.
2024-23-25 14:25:09.029 [main] [INFO ] 'eu.scrumware.pmc.mq.Client' - setUpActiveQm starting..
2024-23-25 14:25:10.370 [ActiveMQ Session Task-2] [INFO ] 'eu.scrumware.pmc.mq.Client' - event destination:queue://pos.q000
2024-23-25 14:25:10.376 [ActiveMQ Session Task-2] [INFO ] 'eu.scrumware.pmc.mq.Client' - a new consumer has started - ID:pmc-test-43411-1706004316728-1:1:1:1

Tak to znamená, že komunikace funguje.

Kontrola funkčnosti

Po provedení všech kroků výše, když zapneme prohlížeč a otevřeme url PMC, měli byhcom být vyzváni k výběru certifikátu:

Manuální instalace POS 13

Po přihlášení by v pravém horním rohu měla zeleně svítit tiskárna.

Manuální instalace POS 14