Mikrotik : script de mise à jour de certificats

Si vous utilisez des certificats SSL sur un / des routeurs Mikrotik vous avez peut être besoin de mettre à jour des certificats dessus… et de l’automatiser. Voici le script qui va bien… n’hésitez pas à me suggérer des améliorations.

#  Script to update SSL certificate and update settings of Hotspot
log info "Starting update of SSL certificate"
:do {tool fetch url=https://urlofcertificate/certificatefilename.crt} on-error={ :put "failed to download new certificate"};
delay 2s
log info "Removing former certificates"
:do {certificate print} on-error={ :log info "failed to list certs"};
:do {certificate remove 0} on-error={ :log info "failed to remove cert0"};
:do {certificate remove 1} on-error={ :log info "failed to remove cert1"};
:do {certificate remove 2} on-error={ :log info "failed to remove cert2"};
:do {certificate remove 3} on-error={ :log info "failed to remove cert3"};
delay 2s
log info "Importing new certificate"
:do {certificate import file-name=certificatefilename.crt passphrase=null} on-error={ :log info "failed to import new certificate"};
log info "Finished updating certificate process"
log info "Now replacing certificate for the hotspot profiles"
:do {ip hotspot profile set 0 ssl-certificate=certificat_portailcaptif.crt_3} on-error={ :log info "failed to replace the certificate of the hotspot profile 0"}
:do {ip hotspot profile set 1 ssl-certificate=certificat_portailcaptif.crt_3} on-error={ :log info "failed to replace the certificate of the hotspot profile 1"}

Que fait le script? On va tout d’abord télécharger le fichier .crt (arrangez vous pour tout mettre dans un seul fichier.. plus simple) puis supprimer les anciens certificats existants (les 4 premiers… il faut adapter le script si vous voulez faire autre chose).

Ensuite il importe le nouveau fichier (le mien n’a pas de passphrase .. mais sinon il faut la spécifier) et importe les certificats contenus dans le fichier .crt et se charge de remplacer ça pour les 2 premiers profils de Hotspot.

J’ai intégré la fonction on-error disponible depuis RouterOS 6.2 pour éviter que le script s’arrête au moindre problème mais … je sais que c’est mal il faudrait en fait que le script s’arrête dans certains cas donc à améliorer!

Tags: