Provozujete OVPN na linuxu / freeBSD a chtěli byste mít lepší přehled nad certifikáty připadávám generování moc složité. Jedním řešením je generovat certifikáty v systému Mikrotik RouterOS.

Certifikáty máte přehledně na jednom místě a při aktivaci nebo revokaci stačí certifikát kopírovat do systému. Samozřejmostí je snažší přenos ke klientovi.

Začneme generováním CA certifikátu v terminálu mikrotiku:

/certificate
add name=ca-template common-name=trustnetwork.cz days-valid=3650 key-size=2048 key-usage=crl-sign,key-cert-sign

následně certifikát serveru:
add name=server-template common-name=*.trustnetwork.cz days-valid=3650 key-size=2048 key-usage=digital-signature,key-encipherment,tls-server

certifikáty podepíšeme:

/certificate
sign ca-template name=ca-certificate

sign server-template name=server-certificate ca=ca-certificate

certifikáty exportujeme do files:

/certificate
export-certificate ca-certificate export-passphrase=""
export-certificate server-certificate export-passphrase="12345678"

certifikátu serveru musíme nastavit heslo, jenom tak se vygeneruje i klíč.

Nyní nakofigurujeme server na linuxu a přeneseme certifikáty a klíč do

Konfigurace serveru

port 1194 proto tcp-server mode server tls-server dev tun ca /../easy-rsa/keys/ca.crt cert /../easy-rsa/key/server.crt key /../finebsd/easy-rsa/key/server.key dh /../easy-rsa/key/dh1024.pem ifconfig 192.168.9.1 192.168.9.2 ifconfig-pool 192.168.9.4 192.168.9.251 route 192.168.9.0 255.255.255.0 push „route 172.16.0.0 255.240.0.0“ keepalive 10 120 cipher AES-128-CBC #comp-lzo user nobody group nogroup persist-key persist-tun verb 3

Vygenerujte Diffie Hellman certifikát

openssl dhparam -out dh1024.pem 1024 Vytvoření klienta /certificate

add name=client-template common-name=client.trustnetwork.cz days-valid=3650 key-size=2048 key-usage=tls-client
sign client-template name=client-certificate ca=ca-certificate
export-certificate client-certificate export-passphrase=12345678

Vymazání hesla z klientského klíče – je potřeba udělat na linuxu / freebsd

openssl rsa -in client.key -out client.key

Konfigurace klienta

client

dev tun
proto tcp-client
remote x.x.x.x 1194
persist-key
persist-tun
ca ..\\config\\adresar/ca.crt
cert ..\\config\\adresar/client.crt
key ..\\config\\adresar/client.key
remote-cert-tls server
cipher AES-128-CBC
auth SHA1
verb 6
keepalive 10 120
user nobody
group nobody

Nakopírovat ca certifikát, klientská certifikát do adresare adresar v config.

revokace klienta

openssl ca -config /cesta/ovpn/openssl.cnf -revoke /cesta/easy-rsa/key/test.crt

Reference 
https://www.medo64.com/2016/12/simple-openvpn-server-on-mikrotik/

Open VPN na adroidu

Je zapotřebí mít klíč bez hesla (viz. vymazání hesla z klíče ) a upravený konfigurák. V konfuguráku u obou certifikátů vymazat cestu nechat jen jméno souboru, to samé i u klíče. Certifikáty, klíč a konfigurák nakopírovat do telefonu.

Nainstalovat aplikaci -> kliknout na OpenVPN profile -> najít soubor s konfigurákem, označit a kliknout na import. Vytvoří se profil a pak stačí připojit a musí to fungovat.

UPDATE 11.2. 2023 – Import error „failed to parse profile“

Po některé aktualizaci OpenVPN na Andoidu je při importu potřeba upravit konfigurák, aby certifikáty byly přímu v něm.

<ca>
-----BEGIN CERTIFICATE-----
....
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
....
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN ENCRYPTED PRIVATE KEY-----
....
-----END ENCRYPTED PRIVATE KEY-----
</key>

Reference:

https://forums.openvpn.net/viewtopic.php?t=34179