Skip to content

Instantly share code, notes, and snippets.

@glavk
Last active November 24, 2015 12:51
Show Gist options
  • Save glavk/c73f44c80ee4fbf1aade to your computer and use it in GitHub Desktop.
Save glavk/c73f44c80ee4fbf1aade to your computer and use it in GitHub Desktop.
Double VPN certificates
# OC CentOS 7.x
# установка пакета easy-rsa
yum install -y easy-rsa
# ключи и сертификаты будут после генерирования в каталоге /usr/share/easy-rsa/2.0/keys
cd /usr/share/easy-rsa/2.0/
. ./vars
./clean-all
# генерирование сертификата и ключа CA. Содержимое ca.crt нужно поместить в секцию <ca> </ca> в каждый конфиг
./build-ca
# генерирование параметров DH. Содержимое dh2048.pem нужно поместить в секцию <dh> </dh> в каждый конфиг
./build-dh
# генерирование ключа для TLS auth. Содержимое tls.key нужно поместить в секции <tls-auth> </tls-auth> в конфиг server.conf на vps1 и в конфиг для к
лиента client.ovpn
openvpn --genkey --secret keys/ta.key
# генерирование сертификата и ключа для сервера на vps1. Содержимое server.crt и server.key нужно поместить в соответственно секции <cert> </cert> и <key> </key> конфига server.conf на vps1
./build-key-server server
# генерирование сертификата и ключа для сервера на vps2. Содержимое s2s.crt и s2s.key нужно поместить в соответственно секции <cert> </cert> и <key> </key> конфига server_vps2.conf на vps2
./build-key-server s2s
# генерирование сертификата и ключа для клиента к серверу vps2. Содержимое s2s.client.crt и s2s.client.key нужно поместить в соответственно сек
ции <cert> </cert> и <key> </key> конфига s2s.conf на vps1
./build-key s2s.client
# генерирование сертификата и ключа для клиента. Содержимое client.crt и client.key нужно поместить в соответственно секции <cert> </cert> и <k
ey> </key> конфига client.ovpn (который нужно отдать клиенту).
./build-key client
# в итоге, у нас файлы на каждом vps файлы в /etc/openvpn:
# 2 файла на vps1:
# server.conf - сервер для клиентов, содержит файлы ca.crt, server.crt, server.key, dh2048.pem, ta.key
# s2s.conf - для связи с vps2, содержит файлы ca.crt, s2s.client.crt, s2s.client.key, dh2048.pem
# 1 файл на vps2:
# server_vps2.conf - для связи с vps1 и вывода трафика от клиентов, содержит файлы ca.crt, s2s.crt, s2s.key, dh2048.pem
# 1 файл для клиента:
# client.ovpn - ca.crt, client.crt, client.key, dh2048.pem, ta.key
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment