RADIUS server potřebuje certifikáty pro dva různé účely. Prvním je bezpečné propojení s národním RADIUSem a druhým je pro EAP server, který slouží pro zabezpečení komunikace mezi uživatelským zařízením a RADIUS serverem.
Certifikát pro spojení s národním RADIUSem přes RadSec nebo IPsec, musí správci připojované organizace získat od jedné z uznávaných CA:
Druhá verze samobslužné certifikační autority určená pro instituce připojené do eduroam.
eduPKI CA je interní certifikační autorita pro služby GÉANTu, která vydává certifikáty těm, kteří si nejsou schopni opatřit vhodné certifikáty pro své služby od místní CA. Certifikáty eduPKI CA nejsou ve výchozím nastavení veřejně důvěryhodné prohlížeči a operačními systémy. Pro získání certifikátu od eduPKI je nutné mít definovaný veřejný kontakt typu oddělení u svého realmu v aplikaci pokryti.eduroam.cz a pak dále kontaktovat správce federace na info@eduroam.cz.
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 eduroamu mnohem větší volnost, ale také odpovědnost. Velmi dobré shrnutí všech úhlů pohledu na tuto problematiku obsahuje dokument 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:
Je ke stažení: https://sourceforge.net/projects/openssl/
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.der >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 …
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íč.
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 eduroam CA 2.
openssl x509 -text -noout <certifikat.pem
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
openssl rsa -in privatni-klic.pem -out privatni-klic-bez-hesla.pem
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í, jakým certifikátem se prezentuje konkrétní server národního RADIUSu, se provede pomocí OpenSSL. Zde je příklad pro server flr1.eduroam.cz:
openssl s_client -connect flr1.eduroam.cz:2083 -showcerts
V příkladu budeme kontrolovat možnost spojení s první adresou národního RADIUSu. Pro ověření možnosti spojení s ostatními adresami, stačí tuto adresu změnit.
openssl s_client -connect flr1.eduroam.cz:2083 -CAfile eduPKI_CA_G_01.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
.
Ž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:
echo $?
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
.