Skoro týden si hraju s RouterOS 3.xx a dnes jsem došel k dosud nenakonfigurovanému restu. Chtěl jsem zakázat nekryptovaný HTTP přístup na administrační webové rozhraní a místo toho spustit šifrovaný HTTPS přístup. Jelikož jsem si rozjel svoji vlastní certifikační autoritu na Windows, chtěl jsem pochopitelně použít certifikát vydaný touto CA. Jak na to? Při implementaci certifikátu je možné zvolit jednu ze dvou cest.
1. varianta
RouterOS verze 3 umí v SSH rozhraní (pravděpodobně i v TELNET rozhraní, ale to zcela ignoruju) vygenerovat certifikační požadavek (předchozí “dvojkové” verze to údajně neuměly).
[admin@MikroTik] /certificate>
.. -- go up to root
add -- Create a new item
create-certificate-request -- Create a new certificate request
decrypt -- Decrypt and cache public keys
edit --
find -- Find items by value
get -- Gets value of item's property
import --
print -- Print values of item properties
remove -- Remove item
reset-certificate-cache -- Delete all cached decrypted public keys and rebuild certificate cache
set -- Change item properties
Takže stačí zadat /certificates create-certificate-request a poté zodpovědět sérii otázek. Kdo někdy generoval certifikát pomocí OpenSSL, bude se cítit jako ryba ve vodě. Výsledkem budou soubory nazvané certificate-request.pem a private-key.pem. Prvně jmenovan se “doručí” certifikační autoritě, která potvrdí certifikát. Ten se následně zase nahraje do RouterOS a pak pomocí direktivy /certificate import a zadání passphrase naimportuje.
2. varianta
Protože jsem již měl certifikát připravený a naimportovaný v úložišti Local Computer v operačním systému Windows, zvolil jsem druhou cestu. Ta začíná exportem certifikátu do .PFX souboru VČETNĚ uložení privátního klíče. Následně je pomocí openssl nutné překonvertovat tvar PFX do PEM tvaru. Detailní návod jsem si již jednou připravil, takže nyní jen ve zkratce:
openssl pkcs12 –in certifikat.pfx –out certifikat.pem –nodes
Výsledkem je soubor, který obsahuje jak veřejnou, tak privátní část klíče. Pokud bych chtěl, mohl bych si klidně tento soubor rozdělit na dva. V případě dvou souborů by pak byla logičtější operace, kterou budu popisovat za chvíli, ale je to “stravitelné” i v případě existence jednoho souboru.
Výsledný .PEM soubor je pak potřeba pomocí FTP dopravit na RouterOS. Posledním krokem je import certifikátu (veřejného i privátního klíče). V 1. variantě jsem použil SSH rozhraní, tak nyní použiji utilitu Winbox.
V menu zvolím Certificates, pak tlačítko Import a zvolím můj PEM soubor, přičemž NEMUSÍM vyplňovat heslo. Jak jsem se již zmínil, můj PEM souboru obsahuje veřejný i soukromý klíč, nejdříve se však importuje jen ten veřejný:
Mezivýsledek pak vypadá takto:
Nyní krapet nelogicky ZNOVU klepnu na Import, zvolím ten samý soubor, ale tentokrát zadám i Passphrase:
A takhle vypadá kýžený výsledek. Důležitá jsou nenápadná písmenka KR v úplně prvním sloupečku u certifikátu:
K značí, že bylo zadáno a uloženo v cache heslo k privátnímu klíči. R znamená RSA certifikát. Pokud by tam bylo místo K písmeno Q, musel bych stisknout tlačítko Decrypt a zadat Passphrase. Posledně popsané je nutné také po stisknutí tlačítka Reset Keys.
A jdeme do finále
Certifikát je připraven (některým z uvedených způsobů), nyní stačí již jen v menu IP, Services zakázat www, povolit www-ssl a v jeho vlastnostech zvolit příslušný certifikát.
A teď už zbývá jen otestovat přístup z webového prohlížeče (pochopitelně se správnými pravidly v INPUT/OUTPUT chains.