Easy rsa openssl not found windows

openvpn-build commit OpenVPN/openvpn-build@cb9a523 breaks all easyrsa on Windows because openvpn binaries (including openssl) are no longer added to PATH during install.

Comments

@TinCanTech

@TinCanTech
TinCanTech

changed the title
Openvpn Windows installer dropping feature «add openvpn to PATH» — easyrsa can no longer find openssl

easyrsa can no longer find openssl

Sep 5, 2017

@TinCanTech
TinCanTech

changed the title
easyrsa can no longer find openssl

easyrsa for Windows can no longer find openssl

Sep 5, 2017

mattock

added a commit
to mattock/easy-rsa-old
that referenced
this issue

Sep 20, 2017

@mattock

Recent OpenVPN installers stopped modifying the PATH. This had the unfortunate
side-effect that easy-rsa no longer worked on new OpenVPN installations. To fix
this PATH is now automatically set in vars.bat.sample based on a registry
lookup. This should work in all cases as the registry key is added in the -post
phase of OpenVPN install. Moreover, reg.exe should be available on all the
Windows versions we support. The automated approach should only fail if easy-rsa
is downloaded separately and OpenVPN is not installed. For those cases there is
the manual override option which is commented out by default.

The automatic registry lookup code was written by Ilya Shipitsin. The
commented-out manual fallback option was provided by egroeper on GitHub. Both
options were tested and confirmed to work by Samuli Seppänen.

URL: OpenVPN/easy-rsa#148
URL: OpenVPN/openvpn-build#105
Signed-off-by: Samuli Seppänen <samuli@openvpn.net>

hmza2990

OpenVpn Newbie
Posts: 3
Joined: Tue Dec 21, 2021 11:55 pm

Easy-RSA build-ca not working!

Hello guys, hope you all are doing well. I don’t know if this is the correct board to post this, this is my first time trying to install an OpenVPN server on a Windows machine, I followed some videos but I’m stuck at this point: «./easyrsa build-ca nopass», and I’m getting this error message: «Easy-RSA error: Missing or invalid OpenSSL Expected to find openssl command at: openssl».
I tried the next next command, but I’m getting the same error in all CA and keys commands.
I’m running the latest version of OpenVPN: 2.5.5, on a Windows Server 2012 R2 machine.
PS: I checked the OpenSSL tab during the installation.
PS2: I’m following this tutorial: https://www.youtube.com/watch?v=DFgJGIceNmw&ab_channel=NETVN
PS3: I can’t use Linux as an alternative, I’m stuck with Windows! (smh)
Any solution? Thank you in advance.


TinCanTech

OpenVPN Protagonist
Posts: 11142
Joined: Fri Jun 03, 2016 1:17 pm

Re: Easy-RSA build-ca not working!

Post

by TinCanTech » Wed Dec 22, 2021 12:24 am

hmza2990 wrote: ↑

Tue Dec 21, 2021 11:58 pm


I’m running the latest version of OpenVPN: 2.5.5

Install Easy-RSA Utilities from the Openvpn installer.


hmza2990

OpenVpn Newbie
Posts: 3
Joined: Tue Dec 21, 2021 11:55 pm

Re: Easy-RSA build-ca not working!

Post

by hmza2990 » Wed Dec 22, 2021 1:00 am

All tho options are checked, including Easy-RSA.



hmza2990

OpenVpn Newbie
Posts: 3
Joined: Tue Dec 21, 2021 11:55 pm

Re: Easy-RSA build-ca not working!

Post

by hmza2990 » Wed Dec 22, 2021 2:39 am

Somebody on Reddit told me to run these commands without ./ and it managed to work but on my Windows 10 laptop. However, I’m still getting the same error on Windows Server 2012 R2!
Any idea?


TinCanTech

OpenVPN Protagonist
Posts: 11142
Joined: Fri Jun 03, 2016 1:17 pm

Re: Easy-RSA build-ca not working!

Post

by TinCanTech » Mon Jan 24, 2022 5:00 pm

hmza2990 wrote: ↑

Tue Dec 21, 2021 11:58 pm


error message: «Easy-RSA error: Missing or invalid OpenSSL Expected to find openssl command at: openssl».

See the vars.example file.


Вчера обнаружил, что на мой домашний сервер пытаются подобрать пароль к RDP. Спросил наших безопасников с работы, да, порт сканировали, но пароль подбирают не они… Надо что-то делать с этим, и я даже знаю что.

Ударим шифрованием по злобным брутфорсерам! Ставим OpenVPN 2.5.1 сервер на Windows Server 2016.

  • Встретимся с Easy-RSA 3.
  • Решим неочевидный баг с директорией временных файлов.
  • Освоим OpenVPN Connect, в том числе на Android.
  • Запилим адаптер OpenVPN WinTun.

Установка OpenVPN Server

Скачиваем дистрибутив для установки OpenVPN:

Community Downloads

vpn

Доступна версия OpenVPN 2.5.1. Скачиваю Windows 64-bit MSI installer, файл OpenVPN-2.5.1-I601-amd64.msi.

vpn

Запускаем инсталлятор OpenVPN.

vpn

Открывается мастер установки, предлагают выбрать тип установки, естественно, нажимаем Customize. Установка по умолчанию нас не устроит.

vpn

OpenVPN GUI отключаю. Мне нужно, чтобы OpenVPN на сервере работал автоматически.

vpn

А OpenVPN Service, наоборот, включаю. OpenVPN у меня будет работать как служба Windows.

Документацию и примеры конфигурации оставляю. Конфигурационные примеры будут использоваться в качестве шаблонов.

vpn

Начиная с версии OpenVPN 2.5 появилась поддержка драйвера WinTUN от разработчиков WireGuard. Говорят, что работает быстрее чем TAP-Windows6. Поэтому драйвер TAP-Windows6 отключаю и включаю Wintun.

ПРИМЕЧАНИЕ: для включения драйвера Wintun необходимо в файле конфигурации сервера включить параметр:

windows-driver wintun

vpn

Утилиты OpenSSL EasyRSA 3 Certificate Management Scripts включаю. Install Now.

vpn

Начинается процесс установки OpenVPN.

openvpn

Установка успешно завершена. Close.

vpn

Установка выполнена в директорию C:Program FilesOpenVPN.

vpn

После установки у нас появляется новый сетевой адаптер Wintun Userspace Tunnel.

vpn

Адаптер отключён.

Создание ключей и сертификатов

Запускаем командную строку под администратором и переходим в рабочую директорию C:Program FilesOpenVPNeasy-rsa.

cd C:Program FilesOpenVPNeasy-rsa

В этой папке есть всё необходимое для генерации сертификатов.

vpn

Для работы в Windows нас интересует файл EasyRSA-Start.bat.

vpn

Выполняем EasyRSA-Start.bat.

vpn

Запускается оболочка EasyRSA Shell.

Инициализируем новую конфигурацию:

./easyrsa init-pki

vpn

Появляется новая директория C:Program FilesOpenVPNeasy-rsapki.

vpn

Генерируем ключ и сертификат центра сертификации. Внимание, сейчас мы наступим на грабли, исправим ошибку и снова вернёмся к генерации файлов для центра сертификации.

./easyrsa build-ca

Нас попросят для раза ввести пароль. Придумываем и вводим.

vpn

Получаем ошибку.

Extra arguments given.
genrsa: Use -help for summary.

Easy-RSA error:

Failed create CA private key

Исправим этот баг. Мне не совсем понятно, почему нельзя было всё сделать сразу по-человечески, чтобы люди не встречали эту ошибку. Копируем файл C:Program FilesOpenVPNeasy-rsavars.example, называем копию C:Program FilesOpenVPNeasy-rsavars.

vpn

Редактируем C:Program FilesOpenVPNeasy-rsavars. В данном файле можно много чего прописать, но я не буду на этом сейчас останавливаться подробно. Находим строку:

#set_var EASYRSA_TEMP_DIR	"$EASYRSA_PKI"

И заменяем её на:

set_var EASYRSA_TEMP_DIR	"$EASYRSA_PKI/temp"

vpn

Собственно, ошибка и заключалась в том, что оболочка по какой-то причине не могла создать временный файл.

Генерируем ключ и сертификат центра сертификации:

./easyrsa build-ca

Нас попросят для раза ввести пароль. Придумываем и вводим. После нас просят указать Common Name для центра сертификации, указываю «internet-lab.ru».

vpn

Операция проходит успешно.

vpn

Создаётся сертификат центра сертификации:

  • C:Program FilesOpenVPNeasy-rsapkica.crt

Сертификат создаётся на 10 лет, это значение можно переопределить в файле vars.

vpn

И ключ центра сертификации:

  • C:Program FilesOpenVPNeasy-rsapkiprivateca.key

Ключ секретный, никому не показываем. он будет храниться на сервере.

Генерируем ключ и запрос на сертификат сервера, назовём сервер именем «server«:

./easyrsa gen-req server nopass

Нас просят указать Common Name для сервера, указываю «internet-lab.ru».

vpn

Операция проходит успешно.

vpn

Создаётся запрос на сертификат сервера:

  • C:Program FilesOpenVPNeasy-rsapkireqsserver.req

vpn

И ключ сервера:

  • C:Program FilesOpenVPNeasy-rsapkiprivateserver.key

Ключ секретный, никому не показываем. он будет храниться на сервере.

Для создания сертификата сервера нужно подписать запрос на сертификат:

./easyrsa sign-req server server

Для подписи нужно ввести слово «yes» и указать пароль от центра сертификации.

vpn

Создаётся сертификат сервера:

  • C:Program FilesOpenVPNeasy-rsapkiissuedserver.crt

Сертификат сервера создаётся на 825 дней, это значение можно переопределить в файле vars.

vpn

Теперь создадим клиентский сертификат. По хорошему клиентский ключ следует запаролить, чтобы исключить утечку при передаче. Для этого есть несколько способов.

Первый

  1. На клиентской машине генерируем запрос на сертификат клиента и ключ без пароля:

    ./easyrsa init-pki
    ./easyrsa gen-req client nopass
  2. Переносим REQ файл запроса на сертификат клиента на машину с нашим CA, импортируем, подписываем, отсылаем сгенерированный сертификат CRT обратно клиенту:
    ./easyrsa import-req /path/to/client.req client
    ./easyrsa sign-req client client

Второй

  1. а машине с CA генерируем сертификат клиента и ключ с паролем:

    ./easyrsa gen-req client
    ./easyrsa sign-req client client
  2. Переносим файлы клиенту, сообщаем пароль. Клиент снимает пароль с полученного ключа:
    openssl rsa -in client.key -out clientnew.key

Третий

Но поскольку я генерирую ключ сам для себя, то воспользуюсь небезопасным третьим способом.

Генерируем ключ и запрос на сертификат клиента, назовём клиента именем «client«:

./easyrsa gen-req client nopass

Нас просят указать Common Name для клиента, указываю «v.pupkin».

vpn

Операция проходит успешно.

vpn

Создаётся запрос на сертификат клиента:

  • C:Program FilesOpenVPNeasy-rsapkireqsclient.req

vpn

И ключ клиента:

  • C:Program FilesOpenVPNeasy-rsapkiprivateclient.key

Для создания сертификата клиента нужно подписать запрос на сертификат:

./easyrsa sign-req client client

Для подписи нужно ввести слово «yes» и указать пароль от центра сертификации.

vpn

Создаётся сертификат клиента:

  • C:Program FilesOpenVPNeasy-rsapkiissuedclient.crt

Сертификат сервера создаётся на 825 дней, это значение можно переопределить в файле vars.

vpn

Генерируем ключ Диффи-Хеллмана:

./easyrsa gen-dh

vpn

Операция займёт некоторое время.

vpn

Создаётся файл:

  • C:Program FilesOpenVPNeasy-rsapkidh.pem

vpn

Я на сервере собираюсь использовать tls-auth для дополнительной проверки целостности, это обеспечит дополнительный уровень безопасности протокола SSL/TLS при создании соединения:

  • Сканирование прослушиваемых VPN-сервером портов
  • Инициация SSL/TLS-соединения несанкционированной машиной на раннем этапе
  • DoS-атаки и флуд на порты OpenVPN
  • Переполнение буфера SSL/TLS

При использовании tls-auth на клиенте не понадобится ключ Диффи-Хеллмана, но пусть будет. Генерируем ключ tls-auth. Для этого запускаем командную строку под администратором и выполняем:

cd C:Program FilesOpenVPNbin
openvpn --genkey secret ta.key

vpn

В папке C:Program FilesOpenVPNbin создаётся файл ta.key.

vpn

Переносим его в папку C:Program FilesOpenVPNeasy-rsapki.

vpn

Минимальный набор сертификатов сгенерирован.

Настройка OpenVPN сервера

Создадим конфигурационный файл сервера C:Program FilesOpenVPNconfig-autoserver.ovpn:

copy "C:Program FilesOpenVPNsample-configserver.ovpn" "C:Program FilesOpenVPNconfig-autoserver.ovpn"

vpn

Открываем блокнотом и редактируем:

notepad "C:Program FilesOpenVPNconfig-autoserver.ovpn"

Лучше изучить конфигурационный файл, я предлагаю свой вариант конфига:

port 1194
proto tcp
dev tun
ca "C:\Program Files\OpenVPN\easy-rsa\pki\ca.crt"
cert "C:\Program Files\OpenVPN\easy-rsa\pki\issued\server.crt"
key "C:\Program Files\OpenVPN\easy-rsa\pki\private\server.key"  # This file should be kept secret
dh "C:\Program Files\OpenVPN\easy-rsa\pki\dh.pem"
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
duplicate-cn
keepalive 10 120
tls-auth "C:\Program Files\OpenVPN\easy-rsa\pki\ta.key" 0 # This file is secret
cipher AES-256-GCM
persist-key
persist-tun
status "C:\Program Files\OpenVPN\log\status.log"
log         "C:\Program Files\OpenVPN\log\openvpn.log"
verb 4
mute 20
windows-driver wintun

У меня здесь указаны пути к ключам и сертификатам, используется порт TCP 1194. Параметр duplicate-cn позволяет подключаться всем клиентам по одному общему сертификату, но это небезопасно и не рекомендуется. Используйте только в тестовых целях. Я использую для того, чтобы с помощью одного и того же сертификата подключиться к OpenVPN серверу и с клиентской машины и со смартфона. Параметр windows-driver wintun подключает использование драйвера WinTun. И что им стоило этот параметр указать в примере конфигурации? Остальное по умолчанию.

ВНИМАНИЕ: в конфигурационных файлах допускается в путях использование прямого слеша:

ca «C:/Program Files/OpenVPN/easy-rsa/pki/ca.crt»

или двойного обратного слеша:

ca «C:\Program Files\OpenVPN\easy-rsa\pki\ca.crt»

Запуск OpenVPN сервера

Переходим к службам:

services.msc

vpn

Находим службу OpenVPNService.

vpn

Настраиваем на автоматический запуск при загрузке сервера.

vpn

Запускаем (перезапускаем) службу.

Согласно настройкам сервера в папке C:Program FilesOpenVPNlog должны появиться логи. Это один из инструментов администратора OpenVPN сервера.

vpn

Активировался сетевой адаптер OpenVPN Wintun.

vpn

Согласно настройкам сервера IP адрес 10.8.0.1.

vpn

Проверяем поднялся ли порт tcp 1194:

netstat -tan | find "1194"

Порт должен прослушиваться.

vpn

Настройка firewall

Теперь нужно настроить firewall. Открываем Windows Defender Firewall with Advanced Security.

vpn

Переходим в Inbound Rules.

vpn

Создаём правило — New Rule…

vpn

Тип правила — Port. Next.

vpn

Протоколы и порты — TCP 1194. Как в настройках сервера. Next.

vpn

Действия — Allow the connection. Next.

vpn

Для всех сетей. Next.

vpn

Указываем название правила — OpenVPN. Next.

Правило создано, теперь firewall не блокирует входящие TCP соединения на 1194 порту.

Настройка OpenVPN клиента на ПК Windows

На компьютере клиента устанавливаем OpenVPN Connect.

Get OpenVPN

vpn

Я скачиваю версию для Windows.

vpn

Запускаем установку.

vpn

Next.

vpn

Принимаем лицензионное соглашение. Next.

vpn

Install.

vpn

OpenVPN Connect устанавливается.

vpn

Установка завершена. Finish.

vpn

На рабочем столе появляется иконка OpenVPN Connect.

На сервере файл примера конфигурации client.ovpn копируем как internet-lab.ru.ovpn.

vpn

И редактируем:

client
dev tun
proto tcp
remote internet-lab.ru 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
remote-cert-tls server
tls-auth ta.key 1
cipher AES-256-GCM
verb 0
connect-retry-max 25

Здесь нужно указать протокол, порт адрес сервера и прочие параметры. Пути к ключам и сертификатам относительные.

Создаём директорию, например, C:openvpn. Копируем в неё с сервера файлы:

  • ca.crt
  • client.crt
  • client.key
  • dh.pem
  • ta.key
  • internet-lab.ru.ovpn

vpn

Запускаем OpenVPN Connect.

vpn

Agree. Переключаемся на File.

vpn

Перетаскиваем мышкой в окно файл C:openvpninternet-lab.ru.ovpn, или указываем через кнопку Browse.

vpn

Ставим галку «Connect after import».

vpn

Коннектимся.

vpn

Соединение с OpenVPN сервером установлено.

vpn

В логах сервера видим, что соединился юзер v.pupkin.

Настройка OpenVPN клиента на смартфоне Android

Копируем на телефон все те же файлы, что и для клиента.

vpn

Устанавливаем приложение OpenVPN Connect.

vpn

Запускаем.

vpn

Agree.

vpn

Выбираем File. Указываем путь к файлу internet-lab.ru.ovpn.

vpn

Import.

vpn

Ставим галку «Connect after import».

vpn

Соединение с OpenVPN сервером установлено.

vpn

В логах сервера видим, что соединился второй юзер v.pupkin.

Отзыв сертификата

cd C:Program FilesOpenVPNeasy-rsa
EasyRSA-Start.bat
./easyrsa revoke client

Ссылки

Установка OpenVPN сервера на Windows

im trying to install openvpn on my centos 6 box
im using epel repository to install the vpn
all went fine on the installation but somehow when coming to generate certificate part
lots of command not found raised when im typing «source ./vars» command

here is returned from the terminal

[root@... easy-rsa]# source ./vars
: command not found
: command not found
: command not found
: command not found
: command not found
: command not found
: command not found
NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys
: command not found
: command not found
: command not found
: command not found
: command not found

here is my vars file setting

# easy-rsa parameter settings

# NOTE: If you installed from an RPM,
# don't edit this file in place in
# /usr/share/openvpn/easy-rsa --
# instead, you should copy the whole
# easy-rsa directory to another location
# (such as /etc/openvpn) so that your
# edits will not be wiped out by a future
# OpenVPN package upgrade.

# This variable should point to
# the top level of the easy-rsa
# tree.
export EASY_RSA="`pwd`"

#
# This variable should point to
# the requested executables
#
export OPENSSL="openssl"
export PKCS11TOOL="pkcs11-tool"
export GREP="grep"


# This variable should point to
# the openssl.cnf file included
# with easy-rsa.
export KEY_CONFIG=/etc/openvpn/easy-rsa/openssl.cnf

# Edit this variable to point to
# your soon-to-be-created key
# directory.
#
# WARNING: clean-all will do
# a rm -rf on this directory
# so make sure you define
# it correctly!
export KEY_DIR="$EASY_RSA/keys"

# Issue rm -rf warning
echo NOTE: If you run ./clean-all, I will be doing a rm -rf on $KEY_DIR

# PKCS11 fixes
export PKCS11_MODULE_PATH="dummy"
export PKCS11_PIN="dummy"

# Increase this to 2048 if you
# are paranoid.  This will slow
# down TLS negotiation performance
# as well as the one-time DH parms
# generation process.
export KEY_SIZE=1024

# In how many days should the root CA key expire?
export CA_EXPIRE=3650

# In how many days should certificates expire?
export KEY_EXPIRE=3650

# These are the default values for fields
# which will be placed in the certificate.
# Don't leave any of these fields blank.
export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="me@myhost.mydomain"
export KEY_EMAIL=mail@host.domain
export KEY_CN=changeme
export KEY_NAME=changeme
export KEY_OU=changeme
export PKCS11_MODULE_PATH=changeme
export PKCS11_PIN=1234

any help will be appreciated
thanks

Решено: openvpn — ошибки при генерации ключей (whichopensslcnf: line 4: openssl: command not found)

Модераторы: Warderer, Модераторы разделов

sdbn

Сообщения: 10

Решено: openvpn — ошибки при генерации ключей

поставил пакет openvpn, дальше в /usr/share/doc/openvpn/examples/easy-rsa/2.0# даю команду . ./vars и в ответ — /usr/share/doc/openvpn/examples/easy-rsa/2.0/whichopensslcnf: line 4: openssl: command not found
NOTE: If you run ./clean-all, I will be doing a rm -rf on /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys
по разному пробовал , никак не получается . Если тупо продолжать , то дальше вот это —
root@22:/usr/share/doc/openvpn/examples/easy-rsa/2.0# ./clean-all
root@22:/usr/share/doc/openvpn/examples/easy-rsa/2.0# ./build-ca
/etc/openvpn/easy-rsa/2.0/pkitool: line 299: openssl: command not found
root@22:/usr/share/doc/openvpn/examples/easy-rsa/2.0#
и вот 299 строка — pkitool : $OPENSSL req $BATCH -days $CA_EXPIRE $NODES_REQ -new -newkey rsa:$KEY_SIZE -sha1

на всякий случай вот файл whichopensslcnf —
#!/bin/sh

if [ «$OPENSSL» ]; then
if $OPENSSL version | grep 0.9.6 > /dev/null; then
echo «$1/openssl-0.9.6.cnf»
else
echo «$1/openssl.cnf»
fi
else
echo «$1/openssl.cnf»
fi

exit 0

подскажите, что править ?

первый в мире — второй в сибири

Понравилась статья? Поделить с друзьями:
  • Easy rsa 3 windows генерация ключа
  • Easy recovery essentials скачать бесплатно для windows
  • Easy recovery essentials windows 7 скачать для флешки торрент
  • Easy recovery essentials windows 7 iso
  • Easy recovery essentials for windows 10 торрент