Jak vytvořit SSL certifikát pro server využívající více doménových jmen?
Často provozujeme na jednom serveru více domén. Server má pak i více DNS jmen (např. mail.firma.cz, mail.firma2.cz). DNS jména odkazují na stejnou IP adresu. Pokud používáme nešifrované spojení, pak je vše v pořádku. V opačném případě však narazíme na problém. Uživatel z domény firma2.cz se nemůže přihlašovat k mail.firma2.cz aniž by mu poštovní program či prohlížeč nahlásil chybu v certifikátu (nesouhlasí jméno serveru s certifikátem). Tento problém se dá řešit přiřazením více IP adres jednomu serveru. Každá doména pak„běží“ na jiné adrese. Podmínkou ovšem je, aby tuto možnost podporoval i příslušný serverový software (mailserver, webserver). Nevýhoda tohoto řešení spočívá ve zbytečné plýtvání s přidělenými adresami. Řešením je certifikát, který bude obsahovat více DNS jmen. Drtivá většina návodů a postupů na internetu pro OpenSSL počítá pouze s jedním DNS jménem (tzv. CommonName). My se zaměříme na jeho další možnosti.
Nejprve nainstalujeme OpenSSL:
sudo apt-get install openssl
Dále si stáhneme skript csr.sh, skript spustíme následujícím způsobem:
sh csr.sh
Vyplníme název serveru, skutečné doménové jméno a libovolný počet alternativních doménových jmen. Pokud již nechceme přidávat další alternativní jména, ukončíme skript zadáním prázdného řádku. Nyní se nám v domovském adresáři vytvořily dva soubory (např. firma_csr.pem, firma_privatekey.pem). První soubor obsahuje požadavek na vystavení certifikátu pro certifikační autoritu (tzv. certificate request) a druhý privátní klíč. Požadavek předáme konkrétní certifikační autoritě např. CAcert, která nám vystaví certifikát. Certifikát spolu s privátním klíčem nakopírujeme na serveru a nestavíme patřičně v konkrétním softwaru.