## Author Author: Jozef Šimko School year: 5., Master study, 2023/24 Study program: Computer Networks Organization: Technical University of Kosice (TUKE), Faculty of Electrical Engineering and Informatics (FEI) ## About Tento priečinok obsahuje demo skript na generovanie hlavnej a sekundarnej certifikačnej autority a generovanie overených certifikátov pre server a klient. Priečinok tiež obsahuje dva konfiguračné súbory, ktoré sa využívajú v príkazoch pri samotnom generovaní. Celý balík tiež obsahuje samostatný skritp *gen_client_certificate.bat* s podrobným priblížením pre generovanie certifikátov pre koncových používateľov. ## USAGE Na automatické generovanie všetkých súborov bol vytvorený skript *gen_CA.bat*. Spustením tohto skriptu sa vytvorí celá štruktúra priečinkov, vygenerujú sa privátne kľúče a certifikáty, ktoré sa následne podpíšu a dodatočne overia. Skript obsahuje aj vzorové príkazy na vytvorenie zreťazených certifikátov aj príklad zneplatnenia odpísaného certifikátu. Použitie skriptu by malo byť JEDNORÁZOVÉ - v prípade viacnásobného spustenia skriptu dojde k prepísaniu a strate pôvodne vygenerovaných súborov. Zároveň môže dôjsť k prepísaniu dodatočne vygenerovaných a podpísaných certifikátov. Skript preto obsahuje príkaz, ktorým sa sám zmaže po vytvorení všetkých potrebných štruktúr a súborov. ## RESULTS ### gen_CA.bat Skript vytvorí nasledovnú štruktúru priečinkov a súborov: ``` myCA | |_ rootCA | |_certs -> priecinok s CA certikatom | |_newcerts -> priecinok s podpisanymi certifikatmi, ich nazov sa rovna ich seriovemu cislu | |_private -> priecinok pre privatne kluce (mal by mat obmedzeny pristup) | |_index/index.txt -> databaza podpisanych certifikatov, ktora obsahuje detaily o podpisanych certifikatoch | |_serial -> pocitadlo podpisanych certifikatov | |_crlnumber -> pocitadlo zneplatnenych certifikatov | |_root.cnf -> konfiguracny subor pre hlavnu CA | |_ intermediateCA | |_certs -> priecinok s CA certikatom | |_newcerts -> priecinok s podpisanymi certifikatmi, ich nazov sa rovna ich seriovemu cislu | |_private -> priecinok pre privatne kluce (mal by mat obmedzeny pristup) | |_index/index.txt -> databaza podpisanych certifikatov, ktora obsahuje detaily o podpisanych certifikatoch | |_serial -> pocitadlo podpisanych certifikatov | |_crlnumber -> pocitadlo zneplatnenych certifikatov | |_intermediateCA.cnf -> konfiguracny subor pre sekundarnu CA ``` ### gen_client_certificate.bat Skript vygeneruje nový privátny kľúč, certifikát a podpíše ho prostredníctvom súkromného kľúča sekundárnej CA. Ide čiastočnú automatizáciu generovania a podpisovania certifikátov pre klienta: - používateľ musí vždy upraviť identifikačné údaje certifikátu - skript predpokladá umiestnenie privátneho kľúča intCA na konkrétnom mieste a pod konkrétnym názvom Generovanie certifikátu s rovnakými parametrami skončí chybou: ``` ERROR:There is already a certificate for /CN=www.testclient.com The matching entry has the following details Type :Valid Expires on :250421105929Z Serial Number :01 File name :unknown Subject Name :/CN=www.testclient.com ```