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