Оглавление:
Карта сайта:
Оглавление:
Карта сайта:
Если вы настраиваете свой VPN-сервер, конфиг создается при настройке сервера.
Где искать на сервере:
# Для OpenVPN, установленного вручную: /etc/openvpn/client/client.ovpn # или /etc/openvpn/ /etc/openvpn/easy-rsa/pki/issued/ # Сертификаты /etc/openvpn/easy-rsa/pki/private/ # Ключи
Как использовать .ovpn-файл?
# Если сертификат встроен в .ovpn: grep -A 20 "<cert>" /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. Новые файлы появятся в:
5. Соберите новый .ovpn-файл:
cat > /etc/openvpn/client1.ovpn <<EOF client dev tun proto udp4 remote 185.17.120.226 1194 resolv-retry infinite nobind keepalive 10 120 comp-lzo cipher AES-256-GCM persist-key persist-tun verb 3 <ca> $(cat /etc/openvpn/easy-rsa/pki/ca.crt) </ca> <cert> $(cat /etc/openvpn/easy-rsa/pki/issued/client1.crt) </cert> <key> $(cat /etc/openvpn/easy-rsa/pki/private/client1.key) </key> EOF
6. Скопируйте client1.ovpn на клиентское устройство.
#!/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 <<EOF client dev tun proto udp remote $SERVER_IP $PORT resolv-retry infinite nobind persist-key persist-tun remote-cert-tls server cipher AES-256-CBC auth SHA256 comp-lzo no verb 3 <ca> $(cat pki/ca.crt) </ca> <cert> $(cat pki/issued/$CLIENT_NAME.crt) </cert> <key> $(cat pki/private/$CLIENT_NAME.key) </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 будет готов к использованию.
Если у вас есть рабочий 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. → Новые файлы создадутся в:
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
Замените блоки:
<cert> -----BEGIN CERTIFICATE----- ... (новый сертификат из pki/issued/server.crt) -----END CERTIFICATE----- </cert> <key> -----BEGIN PRIVATE KEY----- ... (новый ключ из pki/private/server.key) -----END PRIVATE KEY----- </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