===== Перевыпуск просроченного сертификата на OpenVPN-сервере =====
Если вы настраиваете свой VPN-сервер, конфиг создается при настройке сервера.
Где искать на сервере:
# Для OpenVPN, установленного вручную:
/etc/openvpn/client/client.ovpn # или /etc/openvpn/
/etc/openvpn/easy-rsa/pki/issued/ # Сертификаты
/etc/openvpn/easy-rsa/pki/private/ # Ключи
Как использовать .ovpn-файл?
- Скачайте файл (например, client.ovpn).
- Установите OpenVPN-клиент:
* Windows: OpenVPN GUI
* inux: sudo apt install openvpn → sudo openvpn client.ovpn
* Android/iOS: Приложение OpenVPN Connect (импортируйте файл).
==== Если сертификат OpenVPN протух (истек срок действия), его нужно перегенерировать ====
=== Проверка срока действия сертификата ===
# Если сертификат встроен в .ovpn:
grep -A 20 "" /etc/openvpn/client/client.ovpn | openssl x509 -noout -dates
# Если сертификат лежит отдельно (например, client.crt):
openssl x509 -in /etc/openvpn/client/client.crt -noout -dates
Вывод:
notBefore=Apr 24 00:00:00 2023 GMT
notAfter=Apr 24 00:00:00 2024 GMT
Если notAfter в прошлом — сертификат просрочен.
=== Генерация нового сертификата ===
1. Перейдите в папку EasyRSA (обычно /etc/openvpn/easy-rsa/ или /usr/share/easy-rsa/):
cd /etc/openvpn/easy-rsa/
2. Инициализируйте PKI (если нужно) и обновите vars:
./easyrsa init-pki
source vars # (если файл есть)
3. Сгенерируйте новый сертификат клиента (замените client1 на имя клиента):
./easyrsa build-client-full client1 nopass # без пароля
# или с паролем:
./easyrsa build-client-full client1
4. Новые файлы появятся в:
* Сертификат: /etc/openvpn/easy-rsa/pki/issued/client1.crt
* Ключ: /etc/openvpn/easy-rsa/pki/private/client1.key
* CA-сертификат: /etc/openvpn/easy-rsa/pki/ca.crt
5. Соберите новый .ovpn-файл:
cat > /etc/openvpn/client1.ovpn <
$(cat /etc/openvpn/easy-rsa/pki/ca.crt)
$(cat /etc/openvpn/easy-rsa/pki/issued/client1.crt)
$(cat /etc/openvpn/easy-rsa/pki/private/client1.key)
EOF
6. Скопируйте client1.ovpn на клиентское устройство.
=== Пример скрипта make_ovpn.sh ===
#!/bin/bash
CLIENT_NAME="client1" # Имя клиента
SERVER_IP="123.123.123.123" # IP сервера
PORT="1194" # Порт OpenVPN
# Переходим в папку EasyRSA
cd /etc/openvpn/easy-rsa/
# Генерируем сертификат (если ещё не создан)
./easyrsa build-client-full $CLIENT_NAME nopass
# Создаём .ovpn-файл
cat > /etc/openvpn/client/$CLIENT_NAME.ovpn <
$(cat pki/ca.crt)
$(cat pki/issued/$CLIENT_NAME.crt)
$(cat pki/private/$CLIENT_NAME.key)
tls-crypt /etc/openvpn/server/tls-crypt.key # Если используется tls-crypt
EOF
echo "Файл /etc/openvpn/client/$CLIENT_NAME.ovpn создан!"
Как запустить?
chmod +x make_ovpn.sh
sudo ./make_ovpn.sh
После этого /etc/openvpn/client/client1.ovpn будет готов к использованию.
=====Как перевыпустить сертификат сервера OpenVPN =====
Если у вас есть рабочий CA (ca.crt и ca.key), но нужно перевыпустить сертификат сервера (например, из-за истечения срока действия или компрометации ключа), выполните следующие шаги:
1. Перейдите в папку Easy-RSA
cd /etc/openvpn/easy-rsa/ # или /usr/share/easy-rsa/
2. Отзовите старый сертификат сервера (если нужно)
./easyrsa revoke "server" # "server" — имя сертификата (обычно `server`)
./easyrsa gen-crl # Обновить список отозванных сертификатов (CRL)
→ Это нужно, если старый сертификат был скомпрометирован (если просто истёк срок — можно пропустить).
3. Перевыпустите сертификат сервера
./easyrsa build-server-full "server" nopass # "server" — имя сертификата
→ Если нужен пароль для сертификата, уберите nopass.
→ Новые файлы создадутся в:
* pki/issued/server.crt — новый сертификат,
* pki/private/server.key — новый приватный ключ.
4. Обновите конфиг OpenVPN
Замените старые сертификаты в /etc/openvpn/server.conf (или где лежит ваш конфиг):
cert /etc/openvpn/easy-rsa/pki/issued/server.crt
key /etc/openvpn/easy-rsa/pki/private/server.key
Или, если сертификаты встроены прямо в .conf:
sudo nano /etc/openvpn/server.conf
Замените блоки:
-----BEGIN CERTIFICATE-----
... (новый сертификат из pki/issued/server.crt)
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
... (новый ключ из pki/private/server.key)
-----END PRIVATE KEY-----
5. Перезапустите OpenVPN
sudo systemctl restart openvpn-server@server # Для systemd
# ИЛИ
sudo service openvpn restart # Для SysVinit
6. Проверьте, что сертификат обновлён
openssl x509 -in /etc/openvpn/easy-rsa/pki/issued/server.crt -noout -dates
Вывод должен показывать актуальные даты:
notBefore=Jun 25 00:00:00 2024 GMT
notAfter=Jun 25 00:00:00 2025 GMT