Guida MikroTik
Utenti, RADIUS, IoT e containerAvanzato

Certificati e API sicura: api-ssl, REST e automazione del WISP

Crea certificati su RouterOS v7, abilita l'API cifrata (api-ssl) e la REST API per pilotare i router dal gestionale in sicurezza. Utente dedicato a permessi minimi per l'automazione.

Per integrare RouterOS con un gestionale (come WISP Manager) servono le API. RouterOS espone l'API binaria (porta 8728/8729) e la REST API (su HTTP/HTTPS). In produzione si usa SEMPRE la variante cifrata: l'API in chiaro trasmette le credenziali e i comandi senza protezione.

1. Creare i certificati

RouterOS genera certificati self-signed direttamente. Si crea una CA, la si usa per firmare il certificato del server, poi lo si assegna ai servizi (api-ssl, www-ssl).

CA + certificato server self-signed
# 1) Creare e firmare la CA
/certificate/add \
  name=ca-wisp common-name="WISP CA" \
  key-usage=key-cert-sign,crl-sign key-size=2048 days-valid=3650
/certificate/sign ca-wisp ca-crl-host=127.0.0.1 name=ca-wisp

# 2) Creare il certificato del router e firmarlo con la CA
/certificate/add \
  name=cert-router common-name=router01.miowisp.it \
  key-size=2048 days-valid=825
/certificate/sign cert-router ca=ca-wisp name=cert-router

# 3) Verificare (la colonna KEY/Trusted deve risultare valorizzata)
/certificate/print
Per un certificato pubblicamente valido (es. interfaccia web esposta), RouterOS v7 supporta Let's Encrypt con /certificate/enable-ssl-certificate dns-name=router01.miowisp.it: richiede che la porta 80 sia raggiungibile dall'esterno durante l'emissione e un DNS pubblico che punti al router.

2. Abilitare l'API cifrata (api-ssl)

Attivare api-ssl sulla porta 8729
# Assegnare il certificato e abilitare api-ssl (8729), restringendo l'IP sorgente
/ip/service/set api-ssl \
  certificate=cert-router \
  address=10.0.0.0/24 \
  disabled=no

# DISABILITARE l'API in chiaro (8728): non usarla mai in produzione
/ip/service/disable api

# Verificare
/ip/service/print

3. REST API (RouterOS v7)

La REST API di RouterOS v7 espone gli stessi comandi via HTTP(S) con JSON: comodissima per il gestionale. Va abilitata sul servizio www-ssl con un certificato; le chiamate usano Basic Auth con un utente dedicato.

Abilitare la REST API su www-ssl
# Assegnare il certificato a www-ssl e abilitarlo (HTTPS, porta 443)
/ip/service/set www-ssl certificate=cert-router address=10.0.0.0/24 disabled=no

# Esempio di chiamata REST dal gestionale (lato server, mai dal browser):
#   GET  https://router01/rest/ppp/active
#   POST https://router01/rest/ppp/secret   (body JSON con name/password/profile)
#   PATCH https://router01/rest/ppp/secret/<id>  (es. disabled=true per sospendere)
Con TLS self-signed, il client (il connettore/gestionale) deve accettare il certificato del router o fidarsi della CA del WISP. WISP Manager usa un agente che gestisce la connessione TLS verso gli apparati dietro NAT, così le credenziali del router NON finiscono mai nel cloud.

4. Utente API dedicato a permessi minimi

L'automazione NON deve usare l'utente admin. Si crea un utente con il solo permesso api (e gli altri minimi), limitato per IP, così anche se la credenziale trapelasse il danno è contenuto.

Gruppo e utente per l'automazione
# Gruppo: solo API + scrittura, niente policy/reboot/ftp/sniff, password nascoste
/user/group add \
  name=api-automazione \
  policy=api,rest-api,read,write,test,!ssh,!ftp,!reboot,!policy,!sensitive

# Utente dedicato al gestionale, raggiungibile solo dall'agente on-prem
/user/add \
  name=wispmanager \
  group=api-automazione \
  password=Ch1av3API-Lung4-e-C0mpl3ss4 \
  address=10.0.0.50 \
  comment="Automazione WISP Manager (connettore on-prem)"
Per la sospensione dei clienti via API/REST il gestionale può: (1) disabilitare il /ppp/secret (disabled=true) e rimuovere la sessione attiva, oppure (2) cambiare il profilo verso uno a banda zero/walled garden. La strategia (1) è la più semplice; la (2) consente di mostrare al cliente una pagina "servizio sospeso".

5. Checklist sicurezza API

  • Solo api-ssl/www-ssl con certificato: API in chiaro (8728) e HTTP (80) disabilitati
  • Utente dedicato all'automazione, mai admin, con permessi minimi e !sensitive
  • Restrizione address sul servizio E sull'utente verso il solo IP dell'agente/gestionale
  • Servizi API mai esposti sulla WAN pubblica: passare per VPN o agente on-prem
  • Rotazione periodica della password/chiave dell'utente di automazione
  • Log degli accessi API monitorati con /log/print where topics~system
api-sslREST APIcertificateself-signedLet's Encryptautomazione8729api dedicataWISP Manager connettoresicurezza APIwww-ssl

Configura senza fatica con l'AI

In WispOS l'agente AI genera la configurazione RouterOS dalle tue parole e un tutor ti guida passo passo.

Prova WispOS