===== Перевыпуск просроченного сертификата на 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