MikroTik OpenVPN CA und Zertifikate erstellen

artpic_mikrotik-openvpn-zertifikate

Dafür war man bisher immer auf externe Software angewiesen. (Was man natürlich auch weiterhin beibehalten kann.)
Für die Erstellung der CA und Zertifikate hatte ich diese Tools alle mal im Einsatz:

Ab RouterOS 6 ist es möglich diese im eigenen Zertifikatsspeicher des Routers zu erstellen, zu verwalten und zu speichern.
Im Terminal ist das mit dem CLI ziemlich schnell erledigt. (Create Certificates – MikroTik Wiki)

Zuerst erstellen wir die rohen Templates. (In der WinBox → System → Certificates können sie danach noch weiter angepasst werden.)

/certificate add name=ca-template common-name="OpenVPN_CA" key-usage=key-cert-sign,crl-sign
/certificate add name=ovpnServer-template common-name="OpenVPN_Server"
/certificate add name=ovpnClient1-template common-name="OpenVPN_Client1"

Oder wir übergeben den Templates direkt alle Werte mit die wir benötigen.

/certificate add name=ca-template country=DE locality=Strassenhaus organization=bachmann.lan state="Rheinland Pfalz" common-name="OpenVPN_CA" key-size=2048 key-usage=key-cert-sign,crl-sign unit="OpenVPN CA" days-valid=3650 subject-alt-name=email:openvpn@bachmann.lan
/certificate add name=ovpnServer-template country=DE locality=Strassenhaus organization=bachmann.lan state="Rheinland Pfalz" common-name="OpenVPN_Server" unit="OpenVPN Server" subject-alt-name=email:openvpn@bachmann.lan
/certificate add name=ovpnClient1-template country=DE locality=Strassenhaus organization=bachmann.lan state="Rheinland Pfalz" common-name="OpenVPN_Client1" unit="OpenVPN Client 1" subject-alt-name=email:openvpn@bachmann.lan

Die Zertifikate werden jetzt unterzeichnet. (Wir nehmen die IP des Servers als CRL URL.)

/certificate sign ca-template ca-crl-host=192.168.50.2 name=OpenVPN_CA
/certificate sign ca=OpenVPN_CA ovpnServer-template name=OpenVPN_Server
/certificate sign ca=OpenVPN_CA ovpnClient1-template name=OpenVPN_Client1

CA und Server Zertifikat auf trusted setzen. (Wenn sie bisher noch kein T-Flag haben.)

/certificate set OpenVPN_CA trusted=yes
/certificate set OpenVPN_Server trusted=yes

Jetzt exportieren wir das CA Zertifikat und das Client Zertifikat mit Schlüssel.

/certificate export-certificate OpenVPN_CA
/certificate export-certificate OpenVPN_Client1 export-passphrase=CLIENT1.PASSWORD

Die exportierten Dateien kommen jetzt auf unseren OpenVPN Client.

/file print
 # NAME                                   TYPE             SIZE CREATION-TIME
 1 cert_export_OpenVPN_CA.crt             .crt file        1558 may/16/2016 13:06:22
 2 cert_export_OpenVPN_Client1.crt        .crt file        1590 may/16/2016 13:06:42
 3 cert_export_OpenVPN_Client1.key        .key file        1858 may/16/2016 13:06:42

Der private Key des Client Zertifikates ist mit einem Passwort geschützt. (Was in den meisten Fällen auch sinnvoll ist!)
Bei der Einwahl des Clients wird dieser immer mit abgefragt. Sollte dies störend sein, lässt sich das Passwort mit openssl entfernen.

$ openssl rsa -in cert_export_OpenVPN_Client1.key -out cert_export_OpenVPN_Client1.key_ohnepwd

Nach der Abfrage des Passwortes ist der neu erstellte Key dann Passwortfrei.

Für ein kleines Setup mit ein paar VPN Clients ist dies eine gute und schnelle RouterOS Lösung ohne zusätzliche Software.

Schreibe einen Kommentar