====== Certifikáty pro RADIUS server ====== RADIUS server potřebuje certifikát pro dva různé účely. Prvním je bezpečné propojení s národním RADIUSem a druhým je EAP server, který slouží pro zabezpečení komunikace mezi uživatelským zařízením a RADIUS serverem. ===== Certifikát pro RadSec/IPsec ===== Pro RadSec anebo IPsec musí správci připojované instituce získat certifikát od uznávané CA: správci institucí preferují a správci federace doporučují použít **eduroam CA 2** ==== eduroam CA 2 ==== * pro všechny instituce * platnost 5 let * [[eduroamCA2|dokumentace]] ==== TCS ==== * pouze pro instituce připojené k CESNETu * platnost 1 rok * [[http://pki.cesnet.cz/cs/st-guide-tcs-server2.html|dokumentace]] ==== CESNET CA4 ==== * používá národní RADIUS * [[https://pki.cesnet.cz/cs/ch-cca-crt-crl.html|dokumentace]] Až budou nové národní RADIUSy (flr[1-3].eduroam.cz) v provozu, nebudou již podporovat pro RadSec/IPsec certifikáty od TCS. Budou podporovat pouze certifikáty od eduroam CA 2 a eduPKI CA ==== eduPKI CA ==== * používá nový národní RADIUS (flr[1-3].eduroam.cz) pro komunikaci s Top Level Radiusy * [[https://www.edupki.org/edupki-ca|dokumentace]] ===== Certifikát pro EAP server ===== {{ :cs:spravce:pripojovani:autentizace_802_1x-v3.png?600|}} V případě výběru certifikační autority, která podepíše certifikát pro EAP server (pro PEAP/TTLS), má každá instituce v //eduroam//u mnohem větší volnost, ale také odpovědnost. Velmi dobré shrnutí všech úhlů pohledu na tuto problematiku obsahuje dokument [[https://wiki.geant.org/display/H2eduroam/EAP+Server+Certificate+considerations|EAP Server Certificate considerations]]. Rozdíl mezi certifikáty pro RadSec Server a pro EAP server je naznačen v obrázku. Ty pro RadSec server chrání spojení mezi RADIUS serverem organizace a národním RADIUSem (modrá a fuchsiová linka) a ty pro EAP server chrání provoz mezi uživatelským zařízením a RADIUSem organizace ze které uživatel pochází, tedy před veřejným Internetem, ale také před samotnou eduroam infrastrukturou. Bez ohledu na to, pro jakou CA se rozhodnete, je naprosto klíčové, aby zařízení vašich uživatelú ověřovala, že RADIUS server má certifikát na předem nakonfigurované jméno a že certifikát je od jedné konkrétní CA. Porušení jednoho nebo druhého bodu nezajistí dostatečnou ochranu přihlašovacích údajů. Zhruba lze volbu CA, která podepíše certifikát EAP serveru, shrnout takto: * provozujete-li vlastní CA, použijte ji * v případě, že nemáte vlastní CA: * použijte službu [[http://pki.cesnet.cz/cs/st-guide-tcs-server2.html|TCS]] (instituce připojené k CESNETu) * použijte komerční CA (ostatní) * Let's Encrypt by měl jít použít, pokud je možné na RADIUS serveru provozovat HTTP server, kvůli obnově certifikátu v 3měsíčních intervalech * pokud máte více než jeden RADIUS server, použijte pro EAP jediné jméno, např. radius.vas-realm.cz, ruční konfigurace některých zařízení je pak snazší * zajistěte, že uživatelé budou svá zařízení konfigurovat pomocí [[https://www.eduroam.cz/cs/uzivatel/sw/uvod|eduroam CAT]] ====== Časté problémy s certifikáty ====== ===== OpenSSL pro Windows ===== Je ke stažení: https://sourceforge.net/projects/openssl/ ===== DER -> PEM ===== DER je binární kódování ASN.1 řetězců. PEM je ASCII reprezentace téhož. Převod mezi oběma formáty se v případě certifikátu provádí pomocí příkazu: openssl x509 -inform DER -outform PEM certifikat.pem Prohozením ''in/outform'' dosáhnete obráceného převodu. Pro převody privátních klíčů se obdobně používá ''openssl rsa ...'' ===== PKCS#12 -> PEM ===== Převod z formátu PKCS#12 do PEM se provádí pomocí příkazu: openssl pkcs12 -in certifikat.p12 -out certifikat.pem -nodes Pokud soubor ''certifikat.p12'' vyexportujete z prohlížeče, téměř jistě bude obsahovat i certifikát certifikační autority, která ho vydala. V souboru ''certifikat.pem'' je jak certifikát samotný, tak i příslušný privátní klíč. ===== PEM -> PKCS#12 ===== Převod z formátu PEM do PKCS#12 se provádí pomocí příkazu: openssl pkcs12 -chain -CAfile chain_CA.pem -inkey certifikat.key -in certifikat.crt -name "popisek" -out certifikat.p12 -export Parametr -CAfile musíte použít na Windows a na Linuxu, pokud nemáte certifikát v cestě, kde ho OpenSSL očekává. Obsahem je certifikát CA, která vydala certifikát pro váš RADIUS a nebo celý řetěz. V eduroamu tedy od [[https://pki.cesnet.cz/cs/ch-tcs-crt-crl.html|služby TCS]] anebo od [[https://www.eduroam.cz/cs/spravce/pripojovani/eduroamca2|eduroam CA 2]]. ===== Jak zobrazit obsah certifikátu? ===== openssl x509 -text -noout Pomocí výše uvedeného příkazu se můžete přesvědčit, že certifikát má požadovanou extenzi TLS server. Výpis by měl obsahovat: X509v3 Extended Key Usage: TLS Web Server Authentication ===== Jak odstranit zaheslování privátního klíče? ===== openssl rsa -in privatni-klic.pem -out privatni-klic-bez-hesla.pem ===== Jak zjistit, jestli certifikát a privátní klíč patří k sobě? ===== Vypište si a porovnejte modulus certifikátu a privátního klíče: openssl x509 -noout -modulus < cert.pem openssl rsa -noout -modulus < key.pem ===== Ověření certifikátu radius1.eduroam.cz pro RadSec ===== Ověření, jakým certifikátem se prezentuje národní RADIUS, se provede pomocí OpenSSL: openssl s_client -connect radius1.eduroam.cz:2083 -showcerts {{:cs:spravce:pripojovani:ldap21-narodni.txt.gz|Příklad výstupu}}. ===== Ověření navázání spojení s radius1.eduroam.cz pomocí RadSec ===== Na Windows: openssl s_client -connect radius1.eduroam.cz:2083 -CAfile chain_CESNET_CA4.pem -cert vas_certifikat.pem -key klic_k_certifikatu.pem < nul Na Linuxu: openssl s_client -connect radius1.eduroam.cz:2083 -CAfile /etc/freeradius/3.0/certs/chain_CESNET_CA4.pem -cert vas_certifikat.pem -key klic_k_certifikatu.pem < /dev/null Výše uvedeným přikazem lze (po zadání správných cest k certifikátům) ověřit sestavení spojení z vašeho RADIUS serveru na národní RADIUS. Ve výstupu je nutné ověřit, že byl správně ověřen certifikát národního RADIUSu, to je řádek ''Verification: OK''. {{:cs:spravce:pripojovani:spojeni-narodni.txt.gz|Příklad výstupu}}. Že národní RADIUS akceptuje certifikát, poznáte podle skutečnosti, že se spojení naváže. Zda dopadlo ověření certifikátů národního RADIUS serveru dobře, poznáte podle návratového kódu: Na Linuxu: echo $? Na Windows: echo %errorlevel% Pokud je návratový kod nenulový, certifikát národního RADIUS serveru nebyl správně ověřen nebo došlo k jiné chybě. Více informací by mělo být k dispozici na konci výstupu OpenSSL v řádku ''Verify return code''. ===== /DC=org/DC=edupki/CN=eduPKI CA G 01 ===== Pokud při pokusu o připojení na RadSec server na národním RADIUSu vidíte CA eduPKI CA G 01, pak Váš RADIUS s národním RADIUSem komunikuje ze špatné IP adresy (špatně nastavený NAT) a nebo je Váš RADIUS z nějakého důvodu deaktivován v [[https://admin.eduroam.cz/|administrativní aplikaci]].