...
Smart Web podporuje autentifikácie web klientov pomocou klientskych certifikátov. Jedná sa o špeciálny režim autentifikácie klientov známy ako ‘Mutual authentication’ alebo ‘HTTPS client authentication’ alebo TLS Client Certificate Authentication.
Smart Web podporuje dva režimy overovania klientskych certifikátov konfigurovateľné v súbore smartweb.json:
...
Je potrebné vytvoriť keystore, v ktorom bude uložený self-signed companyca keypair. Názov tohto súboru je master-client-credentials.jks. Vytvorí sa nasledovne, po štarte programu vybrať Create a new KeyStore, kde definujeme typ KeyStoru v našom prípade JKS.
Varovanie Súbor master-client-credentials.jks sa nepoužíva priamo na serveroch, ale slúži len ako repository certifikátov. Zo súboru master-client-credentials.jks sa nikdy neexportuje privátny kľúč companyca !!!
- Ďalej klikneme pravým tlačidlom a vyberieme Generate Key Pair.
- Algorithm Selection necháme na RSA s hodnotou Key Size 2048. Ďalej vyberieme verziu 3, Signature Alghorithm SHA-256 with RSA a dobu platnosti. Pri položke Name je dôležité vyplniť čo najviac údajov pre dôveryhodnosť.
- Následne zvolíme Alias a heslo companyca Key Pair-u. Ďalej uložíme KeyStore pod menom master-client-credentials.jks. Pri ukladaní sa opäť vyžaduje nastavenie hesla, tentokrát však na KeyStore.
- Pre každého klienta je potrebné vygenerovať key-pair podpísaný pomocou companyca. Postupujeme tak, že klikneme pravým na companyca v menu zvolíme Sign a Sign New Key Pair. Vytvoríme nový KeyPair pre ClientaA s nastaveniami šifrovania ako pri companyca.
- Pre overenie, že je klientsky KeyPair podpísaný companyca autoritou, klikneme pravým na ClientaAa vyberieme z menu View Details a Certificate Chain Details. V danom okne je vidieť, že vlastníkom je companyca autorita.
- Zo súboru master-client-credentials.jks sa exportujú certifikáty klientov a companyca do súborov clientcertificates-full.jks, client-certificates-d2ws.jks, client-certificates-d2000.jks. Dávajú sa na servery obsahujú verejné kľúče. Certifikáty jednotlivých klientov a companyca vyexportujeme kliknutím na klienta, prípadne companyca a dáme Export a Export Certificate Chain.
- Pri exporte ponecháme nastavenia prípadne upravíme cestu, kde sa ma certifikát uložiť a klikneme na export.
- Keď sú všetky certifikáty vyexportované, uložíme ich do clientcertificates-full.jks a to tak, že vytvoríme nový JKS súbor cez menu programu KeyStore File > New a vyberieme typ JKS. Tu naimportujeme certifikáty kliknutím pravým tlačidlom myši a vyberieme Import Trusted Certificate a certifikát, ktorý chceme importovať.
- Po naimportovaní KeyStore uložíme ako clientcertificates-full. Opäť je vyžadovanie nastavenie hesla na tento JKS súbor.
Tento súbor clientcertificates-full.jks uložíme na konkrétny server, kde to je vyžadované. - Zo súboru master-client-credentials.jks sa exportujú key-pairs klientov vo formáte *.p12 (obsahujú verejné aj privátne kľúče, dáva sa zákazníkovi na zariadenie (PC, Tablet ...)). Export vykonáme v súbore master-client-credentials.jks, kde klikneme pravým tlačidlom na jednotlivých klientov a dáme Export > Export Key Pair. V zložke sa nám vytvoria súbory ClientA.p12 a ClientB.p12, ktoré sa pošlú jednotlivým užívateľom na zariadenia.
Správa klientskych certifikátov
- master-client-credentials.jks keystore obsahuje master companyca key-pair a ním podpísané klientske key-pairs.
- Klientske certifikáty pre klientov Smart Web aplikácie a companyca certifikát je potrebné vyexportovať do súboru client-certificates-full.jks, ktorý musí byť prístupný na čítanie pre jvm proces, v ktorom beží WildFly AS.
- Klientske certifikáty a privátne kľúče je potrebné exportovať zo súboru master-client-credentials.jks vo formáte *.p12.
...
Inštalácia klientskeho certifikátu
...
Na import klientskych certifikátov je vhodné použiť aplikáciu certmgr.msc, ktorá je štandardnou súčasťou OS Windows. Je potrebné vybrať priečinok “Personal” a zvoliť akciu import pre príslušný *.p12 key-pair.
Android
Klientsky *.p12 key-pair je potrebné uložiť do adresára “Downloads” a importovať cez nastavenia systému.
...