# language cs ## 20220523 AK ---- '''česky''' | [[Software/Assessment/testserver|english]] ---- . '''[[SystemAdministration/Systems|Systems Overview]]''' - '''Software''' '''[[Software|Software]]''' - '''Software-Assessment - ''' '''[[Software/Assessment|Software/Assessment]]''' ---- = Systémy - CAcert Testserver = * Currently, March 2022, the Software-Assessment project deploys a new testserver environment. (Historie: test.cacert.org - April 2010.) * [[SystemAdministration/Systems/Development]] * Viz též [[https://infradocs.cacert.org/systems/test.html|Dokument o Infradocs]] a [[Software/Assessment/testserver/setup|stránka o nastavení testserveru]]. <> == Hardware == === test.cacert.org === "Starý" testserver. Přesto je dnes považován za důležitější testovací systém, neboť jeho instalace je úplnější a "bližší" provoznímu serveru. Podrobněji [[SystemAdministration/Systems/Test|zde]]. === test3.cacert.org === test3 je nový (pravděpodobně dočasný) virtuální stroj, primárně k testování migrace na PHP 7. Vzhledem k nedostatku dostupných adres IPv4 je nutné použít alternativní porty: || SSH || test3.cacert.org:14922 || || HTTP || [[http://test3.cacert.org:14980]] || || HTTPS || [[https://test3.cacert.org:14943]] || ToDo: TestMgr pro test3??? == Nastavení == === Kořenový certifikát Class 1 === Prostředí testserveru samozřejmě používá vlastní kořenový a mezilehlý certifikát. Certifikáty serverů pro testovací servery (a případně testovací programy správy) tradičně vydávají samotné testovací kořeny. '''Prosíme, neimportujte ani nedávejte důvěru testovacím kořenům v softwaru/prohlížečích, které se používají i pro "reálný svět"!'''. Je žádoucí, abyste pro testování používali jiný účet nebo profil prohlížeče. Pokud to není možné nebo proveditelné, je vhodné použít bezpečnostní výjimky. Ty je samozřejmě nutné pravidelně aktualizovat při vydávání nových certifikátů pro servery. Databáze certifikačních autorit ("index.txt") se tradičně používají znovu i po změně kořenového certifikátu (certifikátů). V některých případech bylo zvýšeno další vydané sériové číslo ("serial"), pravděpodobně za účelem testování delších sériových čísel. ==== Obsah a omezení ==== * CA:TRUE omezení je ze zřejmých důvodů zásadní (kořenový certifikát certifikační autority). * Subject Distinguished Name (DN): {{{ /C=CH/ST=Geneva/L=Geneva/O=CAcert Inc ***TEST***/OU=Test and Development/CN=CAcert Testserver Root }}} <
>Podrobnosti nejsou rozhodující. Má smysl, aby odpovídalo skutečnému umístění společnosti CAcert Inc. a zahrnovalo skutečnost, že jde o jakýsi testovací kořen, aby jej uživatelé náhodou nepoužívali místo "ostrých" kořenů. Název organizace začíná CAcert, aby bylo snazší najít certifikát v úložištích klíčů, kde jsou tyto údaje obvykle viditelně zobrazeny. * Sériové číslo: Pro testserver<>. Tradičně něco malého, jedna nebo dvě šestnáctkové číslice. * Platnost: Tradičně 10 let. Za určitých okolností může mít smysl i kratší doba platnosti. * Algoritmus: Tradičně 4096 bitů RSA * authorityInfoAccess: Odkazy OCSP by měly být přizpůsobeny testserveru. ''Nejsem si jistý, zda má toto rozšíření v kořenovém certifikátu smysl, pokud vím, je také obsaženo v každém vydaném certifikátu. Vypadá to, že to není na škodu.'' * crlDistributionPoints: Podobně jako u authorityInfoAccess by měl být tento přístup přizpůsoben testserveru. * certificatePolicies: Nemyslím si, že by pomohlo vytvořit zásady specifické pro testovací server, takže by to mělo směřovat na dokument s produkčními zásadami. * subjectKeyIdentifier a authorityKeyIdentifier: ''Nejsem si jistý, zda mají v kořenovém certifikátu smysl, ale nezdá se, že by byly na škodu.'' * nsCaPolicyUrl a nsComment jsou zastaralé. Proto bych je nepoužíval. ==== Zprostředkující certifikát Class 3: obsah a omezení ==== Většina věcí je shodná s kořenovým certifikátem, proto jsou zde uvedeny pouze rozdíly. * Subject Distinguished Name (DN): {{{ /C=CH/ST=Geneva/L=Geneva/O=CAcert Inc ***TEST***/OU=Test and Development/CN=CAcert Testserver Class 3 }}} <
>Podrobnosti nejsou rozhodující, viz výše. * U certifikátu třídy 3 je sériové číslo '''důležité''', protože nesmí existovat dva (aktivní?) certifikáty se stejným sériovým číslem, podepsané kořenovým certifikátem. Tradičně se tedy používá další sériové číslo z databáze certifikační autority. Bude pokračovat... ==== Zkušenosti z roku 2021 při vytváření nové sady kořenových certifikátů ==== Certifikáty byly vytvořeny pomocí přiloženého skriptu [[attachment:NewTestserverRoots]] se dvěma konfiguračními soubory [[attachment:testserver-root.cnf]] a [[attachment:testserver-class3.cnf]]. Podadresář tempCA skutečně obsahoval kopii "databázových souborů" (index.txt, index.txt.attr a serial) z adresáře /etc/ssl/CA. Tato kopie sloužila k experimentování, po "skutečném" spuštění byly vytvořené (a upravené!) soubory ručně zkopírovány zpět do adresáře /etc/ssl/CA. Vytvořený kořenový adresář třídy 3 byl ručně přejmenován a poté zkopírován do adresáře /etc/ssl/class3/. Další aktivity: * Zkopírujte vytvořené certifikáty na místo, odkud je lze stáhnout pomocí [[http://test.cacert.org/index.php?id=3]]. Tedy do adresáře /home/cacert/www/www/certs/, v mém případě do souborů root_x0F.* a CAcert_!Class3Root_x14E228.*. === Prostředí podepisujícího serveru === ==== server.pl ==== Úkolem podepisujícího serveru je podepisovat certifikáty a podobné věci, jako jsou seznamy CRL. Soukromé klíče pro kořenové certifikáty jsou uloženy '''pouze''' na podepisujícím serveru. V produkčním prostředí je podepisujícím serverem jiný počítač, který není připojen k žádné síti typu LAN <>. Je připojen pomocí sériového připojení USB k hlavnímu počítači webového serveru. Na této sériové lince je spuštěn speciální protokol, aby webserver mohl odesílat podepisovacímu serveru požadavky, na které podepisovací server odpovídá odesláním vytvořených certifikátů. V testovacím prostředí je podepisovací server obvykle emulován jako jiný proces, který komunikuje s částí webového serveru pomocí rour<>. Proces podepisování běží ve vlastním adresáři umístěném na adrese /home/signer. Samotný skript signneru se nachází v adresáři /home/signer/cacert-devel/CommModule/server.pl. Přistupuje ke konfiguračním souborům OpenSSL z adresáře /etc/ssl/. V konfiguračním souboru pro kořenový certifikát se pro data certifikační autority (včetně soukromého klíče) používá adresář /etc/ssl/CA a pro zprostředkující kořenový certifikát adresář /etc/ssl/class3. (ToDo: Co je to konfigurace class3s, která ukazuje na adresář /etc/ssl/class3s? Tento adresář se na testovacím serveru nenachází...) ==== client.pl ==== klient.pl běží ve vlastním procesu na pozadí a zpracovává následující úlohy: * načítá žádosti o certifikát z databáze<> * vytváří "sanitizované" soubory CSR pro podepsání server.pl smícháním dat z databáze a nahraných souborů CSR * přenese CSR do server.pl prostřednictvím "sériové linky" a načte výsledky ze server.pl * odešle požadavky na odvolání serveru.pl a načte výsledné aktualizované CRL ''Chybí něco?'' Pokud dojde k úpravě souboru client.pl, musí být proces na pozadí restartován, než se změny projeví. Vyhledejte proces {{{ /usr/bin/perl -w /home/cacert/www/CommModule/client.pl }}} a ukončete jej (kill). Měl by být okamžitě restartován démonem {{{ /home/cacert/www/CommModule/commdaemon }}}. = Poznámky pod čarou = <> ---- . CategorySystems . CategorySoftware . CategorySoftwareAssessment