cs:spravce:pripojovani:serverove_certifikaty

Certifikáty

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

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:

eduroam CA 2

Druhá verze samobslužné certifikační autority určená pro instituce připojené do eduroam.

eduPKI CA G 01

eduPKI CA je interní certifikační autorita pro služeb 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 (např. TCS). Certifikáty eduPKI CA nejsou ve výchozím nastavení veřejně důvěryhodné prohlížeči a operačními systémy. Prozatím není možné, aby organizace připojené v české federaci eduroam získali certifikát od této CA.

  • certifikáty od této CA používají servery národního RADIUSu (flr[1-3].eduroam.cz)
  • platnost 5 let

Certifikát pro EAP server

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:

  • provozujete-li vlastní CA, použijte ji
  • v případě, že nemáte vlastní CA:
    • použijte službu 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
    • Můžete použít i certifikát od eduroam CA 2, který máte pro RadSec/IPsec
  • 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í eduroam CAT

Časté problémy s certifikáty

OpenSSL pro Windows

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.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 …

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 služby TCS anebo od eduroam CA 2.

Jak zobrazit obsah certifikátu?

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

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í RadSec certifikátu národního RADIUSu

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

Ověření navázání spojení se servery národního RADIUSu pomocí RadSec

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.

Last modified:: 2024/05/17 12:21