V tomto návode si ukážeme, ako vytvoriť SSL certifikát pre administračné webové rozhranie FortiGate pomocou vlastnej certifikačnej autority FreeIPA.

Výsledkom bude, že namiesto prístupu na FortiGate cez IP adresu budeme používať DNS názov, napríklad:

https://forti.ibasterisk.local:10444

pričom certifikát bude podpísaný našou internou FreeIPA CA.

Upozornenie

FreeIPA v tomto návode nepoužívam ako DNS server. DNS záznam forti.ibasterisk.local spravuje Pi-hole.

Vytvorenie DNS záznamu v Pi-hole

    V mojom prostredí používam ako lokálny DNS server Pi-hole. Najskôr som preto vytvoril lokálny DNS záznam pre FortiGate.

    V Pi-hole prejdeme do:

    Local DNS → DNS Records

    a pridáme nový záznam:

    Domain:
    forti.ibasterisk.local
    
    IP Address:
    10.10.8.1

    Následne si môžeme overiť, že DNS záznam funguje:

    nslookup forti.ibasterisk.local 10.10.8.1

    Príklad výstupu

    Name: forti.ibasterisk.local
    Address: 10.10.8.1

    Ak DNS preklad funguje správne, môžeme pokračovať vytvorením hosta a služby vo FreeIPA.

    Príprava hosta vo FreeIPA

    Vo FreeIPA prejdeme do:

    • Identity
    • → Host
    • → Add

    Vytvoríme host:

    forti.ibasterisk.local

    a potvrdíme tlačidlom Add.

    Následne prejdeme do:

    • Identity
    • → Services

    Klikneme na Add

    Ako Service (službu) zvolíme: HTTP a z rozbaľovacieho zoznamu vyberieme:

    forti.ibasterisk.local

    Výsledná služba bude:

    HTTP/forti.ibasterisk.local@IBASTERISK.LOCAL

    V prípade chyby môžeme použiť možnosť Force a následne kliknúť na Add.

    FortiGate

    V tomto návode používam FortiGate s FortiOS 7.4.0.

    Prejdeme do:

    • System
    • → Feature Visibility

    a skontrolujeme, či máme zapnutú položku Certificates.

    Ak nie je zapnutá, zapneme ju a klikneme na Apply.

    Následne prejdeme do:

    • System
    • → Certificates
    • → Create/Import
    • → Generate CSR.

    Ako názov certifikátu môžeme použiť napríklad:

    FortiGate_FreeIPA

    DNS názov FortiGate nastavíme na:

    forti.ibasterisk.local

    Po úspešnom nasadení certifikátu sa budeme na FortiGate pripájať prostredníctvom DNS názvu, nie IP adresy.

    Potom sa budete pripájať prostredníctvom

    https://forti.ibasterisk.local:10444

    Nie cez IP. Moderné prehliadače kontrolujú najmä Subject Alternative Name (SAN), preto musí byť DNS názov v certifikáte správny.

    CSR vyplníme nasledovne:

    • Certificate Name: FortiGate_FreeIPA
    • ID Type: Domain Name
    • Domain Name: forti.ibasterisk.local
    • Organization Unit / Organization / City / State: môžete nechať prázdne
    • E-Mail: pole môžete nechať prázdne alebo zadať platnú e-mailovú adresu, napríklad: admin@ibasterisk.local
    • Subject Alternative Name: určite vyplňte v mojom prípade forti.ibasterisk.local
    • Key Type: RSA
    • Key Size: 2048 Bit je úplne v poriadku
    • Enrollment Method: File Based

    Ja som si to vyplnil následovne

    Password for private key (Heslo pre privátny kľúč)

    Zadajte heslo pre privátny kľúč a bezpečne si ho odložte. Privátny kľúč vznikne priamo na FortiGate a zariadenie neopúšťa. Do FreeIPA budeme posielať iba CSR na podpísanie.

    Následne kliknite na OK.

    Následne skontrolujeme stav vytvoreného CSR.

    Kliknite na Search a vyhľadajte:

    FortiGate_FreeIPA

    Následne CSR stiahnite a otvorte v textovom editore. Privátny kľúč pritom zostáva vo FortiGate.

    Zadajte FreeIPA

    Skrátená ukážka CSR:
    Pri reálnom vkladaní do FreeIPA je potrebné skopírovať celý obsah CSR vrátane riadkov BEGIN CERTIFICATE REQUEST a END CERTIFICATE REQUEST.

    -----BEGIN CERTIFICATE REQUEST-----
    MIICujCCAaICAQAwTDEfMB0GA1UEAxMWZm9ydGkuaWJhc3Rlcmlzay5sb2NhbDEp
    MCcGCSqGSIb3DQEJARYaaXZhbi5iYXJvbmFrQGliYXN0ZXJpc2suZXUwggEiMA0G
    -----END CERTIFICATE REQUEST-----

    Na FreeIPA potom:

    • Identity
    • → Services
    • HTTP/forti.ibasterisk.local

    A vyberieme náš HTTP/forti.ibasterisk.local@IBASTERISK.LOCAL

    Volíme Action a New Certificate

    Potom, keď ho vložíme klikneme na Issue

    Výsledné okno bude vyzerať

    Teraz pri certifikáte vpravo klikneme na Actions a zvolíme možnosť na Download Certificate. Potrebujeme iba verejný podpísaný certifikát, private key zostáva vo FortiGate, pretože tam vznikol pri generovaní CSR. FortiGate následne vie tento podpísaný certifikát importovať späť k existujúcemu CSR/private key.

    Stiahnutý certifikát si môžete podľa uváženia premenovať, napríklad:

    forti.ibasterisk.local.crt

    Import certifikátu do Fortigate

    • System
    • → Certificates
    • → Create/Import
    • → Certificate

    Následne import Certificate

    Klikneme na Upload

    Vyberieme certifikát

    Následne volíme možnosť Create

    A už len OK

    keď import prešiel bez chyby, lokálny certifikát máme hotový.

    Následne importujeme aj hlavný CA certifikát FreeIPA (ca.crt) do FortiGate.

    • System
    • → Certificates
    • → Create/Import
    • → CA Certificate

    Volíme File

    Následne Upload

    Volíme Náš ca.crt

    Teraz už ostáva aktivovať náš nový certifikát pre webové administračné rozhranie FortiGate.

    Pôjdeme do:

    System → Settings

    a v časti Administration Settings nájdeme položku:

    HTTPS server certificate

    Tam by sa ti mal v zozname objaviť certifikát, ktorý sme práve vytvorili/importovali, niečo v tvare FortiGate_FreeIPA:

    Zvolíme ho a klikneme na Apply

    https://forti.ibasterisk.local:10444

    Je dosť možné, že ešte budete mať načítanú webovú stránku, ako prvý test otvorte súkromné okno a tam zadajte webovú stránku, prípadne CTRL + F5 na mac cmd + Shift +R

    Poznámka: Aby prehliadač zobrazil certifikát ako dôveryhodný bez bezpečnostného upozornenia, musí byť hlavný FreeIPA CA certifikát nainštalovaný medzi dôveryhodnými certifikačnými autoritami aj na klientskom zariadení.