Генерація rsa ключів для openvpn - youngblogger на

Генерація rsa ключів для openvpn - youngblogger на

Генерація RSA ключів для OpenVPN виконується в кілька простих кроків.

Але перш ніж перейти до генерації ключів нам буде потрібно визначитися з деякими моментами.
Нам потрібні?

При генерації клієнтських ключів важливо зрозуміти, що ключ клієнта може бути або "персональним" або "спільним" одним на декількох клієнтів і навіть одним на всіх клієнтів.

Варіант використання клієнтського ключа визначається однією опцією в конфігураційному файлі на OpenVPN сервері. Опція на сервері дозволяє заборонити або дозволити з'єднання з сервером якщо клієнт з таким ключем вже з'єднався з сервером.

Для управління сертифікатами в постачанні OpenVPN йдуть прості у використанні скрипти які дозволяють виконати хитрі маніпуляції з незрозумілими програмами і їх параметрами. Але перш за все необхідно налаштувати ці скрипти.

Мова піде про Linux конкретно Red Hat Fedora. У Fedora ці скрипти розташовані в каталозі /usr/share/openvpn/easy-rsa/2.0/
Ці скрипти я зазвичай копіюю в домашній каталог / home / user001 / openvpn-easy-rsa / і там маніпулюю зі скриптами.
По-перше, для генерації ключів не потрібні права адміністратора. По-друге, для безпеки отримані приватні ключі можна показувати нікому, а в рідному каталозі вони будуть видні всім користувачам тієї машини де їх генерували. По-третє, я люблю щоб все було в робочих каталогах.

Якщо комусь не хочеться вникати в опису команд, в самому кінці сторінки є короткий список команд для генерації ключів. Налаштуйте файлик vars і в путь.

Налаштування скриптів

Відкрийте файл vars і змініть наступні поля як вам подобається. Але вони не можуть бути порожніми. Так написано в документації :)

Обмеження на довжину поля KEY_EMAIL - 40 символів.
на поле KEY_COUNTRY - 2 символи

ВАЖЛИВО
Зверніть увагу, якщо у вас відсутній підкаталог keys або він порожній, без будь-яких файлів (якщо ви ключі ще не генерували) то обов'язково виконання скріплю ./clean-all
Він робить два дії

  • Видаляє всі з цього каталогу. Обережно! Він не питає підтвердження
  • Створює в цьому підкаталозі два файли
    keys / index.txt - порожній
    keys / serial - які містить один рядок 01 це буде серійний номер першого підписаного ключа.

Без цього при генерації серверних і клієнтських ключів ви отримаєте помилки:

Генерація свого Certification Authoriry

Генерація свого власного Certification Authoriry скорочено (CA) виконується за допомогою скрипта build-ca.

Хочу попередити, що не варто запускати ці скрипти з під mc (Midnight Commander) тому що змінні з скрипта vars загубляться до запуску наступного скрипта. Запускайте все з чистого shell.

Генерація ключа сервера і підписання його своїм CA

Ключ Diffie Hellman

Diffie Hellman ключ служить для обміну ключами між клієнтом і сервером. Він ні від чого не залежить генерується абсолютно автономно, з конфігов використовує тільки шлях до вихідний папці і довжину ключа.

У зв'язку з тим що я встановив розмір ключа 2048 біт генерація Diffie Hellman ключа буде йти довго.

Я не став цитувати повний екран так як в цьому мало сенсу.

Генерація необхідної кількості ключів для клієнтів.

Мені потрібно 3 ключа для 3-х VPN клієнтів. Дія повторю 3 рази міняючи тільки ім'я передається скрипту

І наостанок зробимо останній ключик для сервера і клієнта. Він не обов'язковий, але його призначення запобігати
перейдемо в каталог з ключами і запустимо таку команду (машина де вона запускається повинна мати встановлений openvpn

Вибираємо файли які потрібно скопіювати на сервер, а які на клієнтів

Отже ключі згенеровані. Після генерації TA ключа ми залишилися в каталозі keys.

Ой! У недосвідченого користувача просто дух захопить від цієї кількості файлів. Що ж вибрати?

Все просто для сервера вибираємо ключі:
ca.crt
dh2048.pem
ta.key
my-personal-vpn-server.crt
my-personal-vpn-server.key

Для клієнта client1
ca.crt
ta.key
my-personal-vpn-client1.crt
my-personal-vpn-client1.key
І так далі…

Щоб розставити всі крапки над I приведу табличку як це було на сайті OpenVPN.

Схожі статті