MikroTik Simple Certificate Enrollment Protocol (SCEP) na przykładzie CAPsMAN

Grafika wygenerowana przez AI https://www.bing.com/images/create

Jak głosi Wikipedia SCEP (Simple Certificate Enrollment Protocol) został zaprojektowany, aby sprawić że żądanie i wydanie cyfrowego certyfikatu będzie tak proste, jak tylko to możliwe. Spróbuję wyjaśnić działanie SCEP na przykładzie MikroTik, a ściślej to założenia są następujące:

  1. Mamy już działającego produkcyjnie CAPsMANa.
  2. Połączenie z istniejącymi CAP oparte jest na certyfikatach.
  3. Chcemy dodać kolejny CAP.
  4. RouterOS w wersji 7.x.x

Topologia sieci wygląda następująco:

CAPsMANem jest router o nazie MAN i IP: 10.0.0.1. Zarządzane przez niego accesspoint to AP1 i AP3. Dodajemy dodatkowy, zaznaczony na rysunku jako AP2 i IP: 10.0.0.254

Logujemy się na router MAN i odszukujemy certyfikat CA, jaki jest wygenerowany na tym routerze dla CAPsMAN. Można to zrobić z GUI Winbox (klikając po kolei Wireless/CAPsMAN/przycisk Manager) lub z CLI za pomocą poniższego polecenia:

/caps-man manager print

Widać, że w moim przypadku w polu Generated CA Certificate znajduje się wpis CAPsMAN-CA-07FCF1D2D988. Wyeksportuję teraz ten certyfikat (bez klucza prywatnego):

/certificate/export-certificate CAPsMAN-CA-07FCF1D2D988 file-name=CAPsMAN-CA-07FCF1D2D988 type=pem

W powyższym poleceniu zmieniamy nazwę CAPsMAN-CA-07FCF1D2D988 na taką, jaka aktualnie jest na naszym CAPsMANie. Skutkiem prawidłowego wykonania polecenia jest utworzenie pliku CAPsMAN-CA-07FCF1D2D988.crt:

Widać, że wygenerowany plik zapisał się w głównym katalogu pamięci.

Do przeniesienia pliku można wykorzystać usługę serwera ftp oraz polecenie fetch. włączamy serwer ftp na naszym Mikrotik:

/ip/service/enable 1

Polecenie, które kopiuje plik do nowej lokalizacji:

/tool fetch address=127.0.0.1 mode=ftp user=admin src-path=CAPsMAN-CA-07FCF1D2D988.crt dst-path=scep/CAPsMAN-CA-07FCF1D2D988.crt

Po prawidłowym wykonaniu polecenia otrzymujemy plik .crt w podkatalogu scep:

Przejdźmy do uruchomienia serwera SCEP, na zakładce System/Certificates/SCEP Servers dodajemy nowy serwer i wybieramy wcześniejszy certyfikat CA. Dodatkowo uzupełniamy pola Path, Days Valid i Request Lifetime.

Ważność certyfikatu ustawiana jest w tym momencie na serwerze SCEP i nie ma znaczenia , jaki czas ustawimy później w żądaniu.

/certificate/scep-server/add ca-cert=CAPsMAN-CA-07FCF1D2D988 path=/scep/ days-valid=3650 request-lifetime=00:10:00

To tyle jeżeli chodzi o konfigurację routera MAN, przejdźmy teraz do AP2.


Musimy wygenerować certyfikat dla AP2. Domyślnie CAPsMAN używa nazewnictwa CAP-AdresMAC. Sprawdziłem i mój AP2 na interfejsie ether1 (tym interfejsem jest wpięty do MAN) ma adres: 00:15:5D:4A:20:24. Przepisuję ten adres do poniższego polecenia (pomijając dwukropki):

/certificate add name=CAP-00155D4A2024 common-name=CAP-00155D4A2024 days-valid=10 key-usage=digital-signature,key-encipherment,data-encipherment

Podpisujemy wygenerowany certyfikat za pomocą SCEP:

Ważne jest podanie prawidłowej ścieżki serwer SCEP http://10.0.0.1/scep/

Wracamy do routera MAN.


Ostatnią rzeczą, którą trzeba wykonać, to na routerze MAN w System/Certificates/Requests zatwierdzić żądanie. Bądź cierpliwy, żądanie może się pojawić po kilkunastu sekundach:

… i z powrotem na CAP.


Po odczekaniu kliku, kilkunastu sekund, na routerze CAP cenryfikat CAP-00155D4A2024 ma status idle, a wartość pola Days Valid zmieniła się na 3650 (wcześniej było to 10) zgodnie z ustawieniami serwera SCEP na routerze MAN.

Koniec 🙂

Jeżeli pomogłem to Postaw mi kawę na buycoffee.to ,a będę miał więcej energii na pisanie kolejnych ciekawych wpisów.

Jako ciekawostkę mogę dodać, że żądania można dodatkowo zabezpieczyć przez wykorzystanie OTP (One Time Password). Aby to zrobić, generujemy OTP na routerze MAN:

Następnie podajemy wygenerowanie hasło na routerze AP2, po kliknięciu przycisku Sign via SCEP:


Co ciekawe, w wersji Router OS 7.15.3 nie udało mi się ukończyć żądania SCEP dla CAPsMANv2 (zakładka WiFi). W logu pojawiał się błąd:

scep client failure: requesting-certificate-failed

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *