====== Výměna podpisového certifikátu metadat ====== Agregátor metadat byl přepnut a na stávajících URL adresách se již generují metadata podepsaná novým certifikátem. URL adresy uvedené níže (tedy s 2021 v názvu) jsou však stále platné. Tato stránka zde zůstává z informačních důvodů. V neděli 14. února 2021 vyprší podpisový certifikát pro metadata federací spravovaných sdružením CESNET, která jsou dostupná na serveru metadata.eduid.cz. Nově vygenerovaný certifikát obsahuje stejný veřejný klíč, jiná je tedy pouze platnost a otisk. Implementace protokolu SAML by s platností certifikátu neměly nijak nakládat a měly by ji ignorovat. To je důvod, proč ve většině případů expirovaný certifikát (např. v metadatech) nijak neohrožuje funkčnost. Jsou však implementace, které platnost kontrolují navzdory standardům a doporučením, proto je vhodné tuto změnu provést. **Narazíte-li na nějaký problém, nebo budete-li mít nějaký dotaz, neváhejte a napište na adresu [[info@eduid.cz]].** ===== Plán výměny certifikátu ===== Již nyní generujeme nejen metadata podepsaná stávajícím certifikátem (na stávajících URL adresách), ale i metadata podepsaná novým certifikátem (na nových dočasných URL adresách). V průběhu čtvrtka 11. února začneme metadata podepsaná novým certifikátem umísťovat na stávající URL adresy a nové dočasné URL adresy budou fungovat jako přesměrování. Čili pokud změníte kvůli otestování svou konfiguraci, nebudete muset následně už nic dělat. ===== Výsledky testování ===== Jelikož nově vygenerovaný podpisový certifikát obsahuje stejný veřejný klíč jako brzy expirující certifikát, tak v případě, že máte implementaci odpovídající standardům a doporučení, není víceméně nutné tento podpisový certifikát měnit. Při testování Shibboleth IdP a Shibboleth SP jsme posunuli čas tak, aby současný podpisový certifikát byl expirovaný a následně jsme ověřovali stávající (i nová) metadata a to pomocí jak expirovaného, tak nového certifikátu. Shibboleth IdP i Shibboleth SP si korektně stáhl metadata (stará i nová) a bez problémů je ověřil jak novým, tak expirovaným certifikátem (právě kvůli stejnému veřejnému klíči). Při testování SimpleSAMLphp, které používalo pro ověření metadat certifikát, vše fungovalo úplně stejně jako v případě Shibbolethu. Nicméně pokud SimpleSAMLphp používalo namísto certifikátu jen jeho otisk, tak ověření samozřejmě selhalo, protože nový certifikát má logicky otisk jiný. Následující tabulka shrnuje výsledky testování Shibboleth IdP, Shibboleth SP a SimpleSAMLphp (jako SP) při ověřování platnosti metadat pomocí podpisového certifikátu. ^ ^ Expirovaný certifikát ^ Nový certifikát ^ ^ Stávající metadata | V pořádku | V pořádku | ^ Nová metadata | V pořádku | V pořádku | **Přesto však důrazně doporučujeme na výsledky našeho testování nespoléhat a to zejména při použití jiné implementace než Shibboleth anebo SimpleSAMLphp s certifikátem.** ===== Nový certifikát + nová metadata ===== Nový certifikát je již k dispozici na webu: * [[https://www.eduid.cz/docs/metadata2021.eduid.cz.crt.pem]] Pomocí tohoto certifikátu již podepisujeme metadata, která jsou však umístěna na jiných URL adresách. Kdo chce mít 100% jistotu, že jeho služba nebude nijak postižena po přepnutí, ať si vyzkouší stahovat nová metadata a kontrolovat jejich podpis novým certifikátem. Nová metadata mají oproti těm stávajícím v názvu přidán současný rok, tedy "2021", vizte následující tabulky: ==== eduID.cz ==== ^ Starý certifikát ^ Nový certifikát ^ | eduid | eduid2021 | | eduid+idp | eduid2021+idp | | eduid+idp+avcr | eduid2021+idp+avcr | | eduid+idp+cesnet | eduid2021+idp+cesnet | | eduid+idp+hospital | eduid2021+idp+hospital | | eduid+idp+library | eduid2021+idp+library | | eduid+idp+other | eduid2021+idp+other | | eduid+idp+university | eduid2021+idp+university | | eduid+sp | eduid2021+sp | ==== eduGAIN ==== ^ Starý certifikát ^ Nový certifikát ^ | edugain | edugain2021 | | edugain+idp | edugain2021+idp | | edugain+sp | edugain2021+sp | ==== Social IdPs ==== ^ Starý certifikát ^ Nový certifikát ^ | socialidps | socialidps2021 | ==== Standalone IdPs ==== ^ Starý certifikát ^ Nový certifikát ^ | standaloneidps | standaloneidps2021 | ==== CESNET-int ==== ^ Starý certifikát ^ Nový certifikát ^ | cesnet-int | cesnet-int2021 | | cesnet-int+idp | cesnet-int2021+idp | | cesnet-int+sp | cesnet-int2021+sp | ===== Konfigurační změny ===== ==== Shibboleth IdP ==== Shibboleth IdP by měl nadále fungovat bez jakéhokoliv konfiguračního zásahu. Nicméně i tak doporučujeme provést změnu zdroje metadat a certifikátu. Tím otestujete, že až přestaneme generovat stará metadata, vše bude fungovat. Předpokládáme, že máte Shibboleth IdP nainstalován dle našeho [[cs:tech:idp|návodu]] v adresáři ''/opt/shibboleth-idp/''. V souboru ''conf/metadata-providers.xml'' musíte u elementu '''' změnit atribut ''metadataURL'' dle výše uvedených "převodních tabulek" a také v elementu '''' upravit atribut ''certificateFile''. Musíte také stáhnout nový podpisový certifikát, např. následujícím příkazem: # Stažení nového podpisového certifikátu metadata2021.eduid.cz.crt.pem wget -P /opt/shibboleth-idp/credentials \ https://www.eduid.cz/docs/metadata2021.eduid.cz.crt.pem Můžete též smazat keš metadat v adresáři ''/opt/shibboleth-idp/metadata/'', ale nemažte soubor ''idp-metadata.xml'' obsahující metadata vašeho IdP, která jsou dostupná na https://HOSTNAME/idp/shibboleth. Po provedení výše uvedených změn nezapomeňte restartovat Jetty: # Restart Jetty systemctl restart jetty9 ==== Shibboleth SP ==== Shibboleth SP by měl nadále fungovat bez jakéhokoliv konfiguračního zásahu. Nicméně i tak doporučujeme provést změnu zdroje metadat a certifikátu. Tím otestujete, že až přestaneme generovat stará metadata, vše bude fungovat. Předpokládáme, že máte Shibboleth SP nainstalován z distribučního balíčku dle našeho [[cs:tech:sp:shibboleth|návodu]] v adresáři ''/etc/shibboleth/''. V souboru ''shibboleth2.xml'' musíte u elementu '''' změnit atribut ''url'' dle výše uvedených "převodních tabulek" a také v elementu '''' upravit atribut ''certificate''. Musíte také stáhnout nový podpisový certifikát, např. následujícím příkazem: # Stažení nového podpisového certifikátu metadata2021.eduid.cz.crt.pem wget -P /etc/shibboleth/ \ https://www.eduid.cz/docs/metadata2021.eduid.cz.crt.pem Můžete též smazat keš metadat v adresáři ''/var/cache/shibboleth/''. Po provedení výše uvedených změn nezapomeňte restartovat Shibboleth SP: # Restart Shibboleth démona systemctl restart shibd ==== SimpleSAMLphp SP ==== U SimpleSAMLphp jsme dříve doporučovali používat ke kontrole metadat pouze otisk podpisového certifikátu. To se v konfiguračním souboru ''config-metarefresh.php'' konfigurovalo pomocí volby ''validateFingerprint'' následovně. # Dřívější nastavení v konfiguračním souboru config/config-metarefresh.php # Starý metadata feed # Používá pouze otisk podpisového certifikátu $config = [ 'sets' => [ # eduID.cz 'eduidcz' => [ 'cron' => ['hourly'], 'sources' => [ [ 'src' => 'https://metadata.eduid.cz/entities/eduid+idp', 'validateFingerprint' => '2E:51:FC:08:CF:15:C5:15:48:28:AF:64:A7:97:50:80:B4:AB:5D:24', ], ], 'expireAfter' => 60*60*24*4, // Maximum 4 days cache time. 'outputDir' => 'metadata/eduidcz/', 'outputFormat' => 'flatfile', ], ], ]; Nyní je však nutné tuto volbu opravit, protože metadata jsou podepisována novým certifikátem, který má jiný otisk. Současná konfigurace tedy způsobí, že nově stažená metadata nebudou považována za platná a přestanou se tak aktualizovat. Až vyprší jejich platnost (atribut ''validUntil'' v elementu '''' v metadatech), služba nebude fungovat. Buď můžete upravit otisk (to bude fungovat, ale není to optimální) anebo začít používat ke kontrole certifikát (to je optimální). Smažte (nebo zakomentujte) volbu ''validateFingerprint'' a přidejte ''certificates'' dle ukázky níže: # Nové nastavení v konfiguračním souboru config/config-metarefresh.php # Nový metadata feed # Používá se podpisový certifikát, nikoliv jen jeho otisk $config = [ 'sets' => [ # eduID.cz 'eduidcz' => [ 'cron' => ['hourly'], 'sources' => [ [ 'src' => 'https://metadata.eduid.cz/entities/eduid2021+idp', 'certificates' => [ 'metadata2021.eduid.cz.crt.pem', ], ], ], 'expireAfter' => 60*60*24*4, // Maximum 4 days cache time. 'outputDir' => 'metadata/eduidcz/', 'outputFormat' => 'flatfile', ], ], ]; Je také potřeba mít stažený podpisový certifikát a to v podadresáři ''cert/'' uvnitř adresáře se SimpleSAMLphp. V případě, že máte SimpleSAMLphp v adresáři ''/opt/simplesamlphp/'', stáhněte nový podpisový certifikát následujícím příkazem: # Stažení certifikátu pro ověření metadat federace wget -P /opt/simplesamlphp/cert/ \ https://www.eduid.cz/docs/metadata2021.eduid.cz.crt.pem Můžete též smazat keš metadat v adresáři ''/opt/simplesamlphp/metadata/''. Následně aktualizujte metadata tak, jak jste obyčejně zvyklí, nebo se přihlaste do webového administračního rozhraní SimpleSAMLphp a v záložce **Federation** zvolte v sekci **Tools** odkaz pro aktualizaci metadat nazvaný **Metarefresh: fetch metadata**. ==== Ostatní implementace ==== Doporučuji, abyste ve svém vlastním zájmu aktualizovali zdroj metadat (dle výše uvedené "převodní tabulky"), stáhli si nový podpisový certifikát, smazali keš metadat a ověřili, že si vaše implementace stáhne bez problémů nová metadata a ověří je.