cs:spravce:pripojovani:serverove_certifikaty

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:

TCS

eduroam CA

CESNET CA3

CESNET CA4

Národní RADIUS používá certifikát vydaný CESNET CA3.

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.

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

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í 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

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

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 CESNET CAAS.

Last modified:: 2019/09/21 13:44