Przejdź do treści

OpenVPN – aktualizacja certyfikatów

  • przez

W zależności od przyjętej polityki, wcześniej czy później nadejdzie taki moment, gdy certyfikat CA używany w usłudze OpenVPN straci swoją ważność. A to oznacza, że klienci stracą możliwość połączenia do serwera VPN. A to może być spory problem.

Na szczęście da się łatwo zrobić aktualizację certyfikatu CA oraz certyfikatu serwera. Z certyfikatami klientów jest nieco trudniej, bo trzeba je wgrać klientom. Ale o tym wszystkim poniżej.

Mając dostęp do klucza prywatnego ca.key należy wygenerować nowy certyfikat ca.crt:

openssl x509 -in ca.crt -days 36500 -out ca.crt.new -signkey ca.key

Powyższa komenda spowoduje wygenerowanie nowego certyfikatu CA ważnego 10 lat i zapisanie go do pliku ca.crt.new. W praktyce można stary certyfikat zapisać pod nazwą np. ca.crt.old a ca.crt.new zamienić na ca.crt. Następnie robimy restart usługi openvpn na serwerze. W międzyczasie można już myśleć nad dystrybucją nowego ca.crt do klientów (oczywiście w możliwie sprytny i szybki sposób).

Zmiana certyfikatu CA na serwerze nie spowoduje niemożliwości połączenia klientów, nawet jeżeli klienci korzystają nadal ze starego ca.crt.

Następnie korzystając z easy-rsa można zrobić aktualizację certyfikatu serwera – jeżeli on również wymaga aktualizacji:

source vars
./buid-key-server server

Po podmianie pliku certyfikatu serwera w konfiguracji usługi openvpn – ponownie restart usługi.

W przypadku certyfikatów klientów, mając pierwotne pliki .csr, można wygenerować nowe certyfikaty bez zmiany kluczy, ewentualnych haseł do nich itd.

source vars
./sign-req <certificate-name>

Po tym zostanie już tylko dostarczyć nowy certyfikat do klienta (może razem z nowym ca.crt?). To wszystko w zależności od czasów ważności jakie pozostały dla poszczególnych certyfikatów. Ważne jest jedno – nie należy tego zostawiać na ostatnią chwilę. A zgodnie z pewnym prawem 😉 – jak nie monitorujemy tego w sposób automatyczny, okaże się, że certyfikaty tracą ważność parę dni przed naszym urlopem 🙂

Więcej info, na podstawie którego ja napisałem, np. tutaj:

https://buger.dread.cz/openvpn-expired-certificates.html