Smart Web poporuje autentifikácie web klientov pomocou klientských 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 klientských certifikátov konfigurovateľné v súbore smartweb.json:
- Lokálne overovanie (AUTH_CERTIFICATE_LOCALLY) na strane WildFly AS
- Vzdialnené overovanie (AUTH_CERTIFICATE_REMOTELY) v aplikácii D2000
Nasledujúce kapitoly obsahujú odporúčania pre generovanie a správu klientských certifikátov.
Postup generovania klientských certifikátov
Klientske certifikáty sa generujú pomocou nástroja KeyStore Explorer Postup je nasledovný:
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.
Súbor master-client-credentials.jks sa nepoužíva priamo na serveroch, ale slúži len ako repository certifikátov. Zo súbora 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žite 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úbora 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úbora 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 klientských 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 klientského certifikátu
Microsoft Windows 7/8/10 – desktop PC
Na import klientskych certifikátov je vhodné použiť aplikáciu certmgr.msc, ktorá je štandartnou súčasťou OS Windows. Je potrebné vybrať priečinok “Personal” a zvoliť akciu import pre príslušný *.p12 key-pair.
Android
Klientský *.p12 key-pair je potrebné uložiť do adresára “Downloads” a importovať cez nastavenia systému.
iOS
Klientský *.p12 key-pair je potrebné poslať v prílohe mailom na klientske zariadenia importovať cez nastavenia systému.