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.

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

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

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

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

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

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ů¶

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

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


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ů.

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.

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.
-
Rozbalíme soubor java.zip do složky, ve které se nachází ostatní soubory související s PMC POS.
-
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
- url MQ serveru, pro produkční prostředí je to ssl://pmc.parkcloud.cz:61617
- uživatelské jméno
- heslo k uživateli
- 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
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:

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