Описание моего опыта по установке под Windows 10 криптографической библиотеки OpenSSL ( https://www.openssl.org/ ).
OpenSSL мне был необходим, чтобы сгенерировать самоподписанный SSL сертификат.
Как пишет Википедия, OpenSSL — полноценная криптографическая библиотека с открытым исходным кодом, широко известна из-за расширения SSL/TLS, используемого в веб-протоколе HTTPS.
Понять, где скачать инсталлятор для Windows, было довольно непросто.
Алгоритм был такой: на https://github.com/openssl/openssl в секции Download есть следующее упоминание: "We also maintain a list of third parties ... on the Binaries page on our wiki.".
Эти самые Binaries - ссылка на страницу https://wiki.openssl.org/index.php/Binaries.
На этой странице есть таблица со ссылками на различные web-ресурсы, с которых можно скачать сборки под Windows.
Я остановился на сайте https://slproweb.com/products/Win32OpenSSL.html и выбрал для установки Win64 OpenSSL v3.3.0 Light, скачав файл Win64OpenSSL_Light-3_3_0.exe.
Процесс установки OpenSSL
Запускаем с правами Администратора скачанный файл Win64OpenSSL_Light-3_3_0.exe.
Выбираем "I accept the agreement" и нажимаем Next.
Оставляем предложенный путь установки C:\Program Files\OpenSSl-Win64.
Нажимаем Next.
Оставляем предложенное название ярлыка OpenSSL.
Нажимаем Next.
Оставляем Copy OpenSSL DLLs to The Windows system directory.
Нажимаем Next.
В открывшемся окне Ready to install нажимаем Install.
Дожидаемся, пока закончится установка...
В открывшемся окне "Completing the OpenSSL Light (64-bit) Setup Wizard" убираем все галочки...
... и нажимаем Finish.
Настройка OpenSSL в Windows
Как я говорил выше, OpenSSL мне был нужен всего лишь для того, чтобы создать самоподписанный SSL сертификат... Один-единственный сертификат...
Запускаю командную строку, ввожу команды - хрен там, выпадают ошибки:
error:02001003 и error:2006В080 с какими-то сообщениями, из которых понятно, что OpenSSL не видит свой собственный конфигурационный файл openssl.cnf...
Выяснилось, что этот конфиг openssl.cnf находится в директории C:\Program Files\Common Files\SSL
Я пробовал добавлять эту директорию в переменную PATH (с перезагрузкой компьютера) - то же самое:
error:02001003 и error:2006В080
Также я пробовал запустить OpenSSL сопцией указания пути к конфигурационному файлу -config "C:\Program Files\Common Files\SSL" - всё равно ошибки, только уже другие (Error configuring OpenSSL modules):
error:25078067, error:25070067, error:0E07506E и error:0E076071
OpenSSL - ленивое решение
Можно, конечно, было заморочиться и разобраться, как прописать все эти пути (где-то что-то упоминалось, что надо бы ещё и системную переменную OPENSSL_CONF создать и туда что-то прописать), но мне стало лень и я пошёл другим путём.
Ниже расписано, что я в результате придумал (всё делается с правами Администратора).
Предварительная подготовка
Открываем директорию C:\Program Files\Common Files\SSL, правой кнопкой мыши кликаем на файл openssl.cnf и выбираем "Копировать".
Открываем директорию C:\Program Files\OpenSSL-Win64\bin, правой кнопкой мыши кликаем на пустое место и выбираем "Вставить".
Подтверждаем копирование файла openssl.cnf в директорию C:\Program Files\OpenSSL-Win64\bin - нажимаем "Продолжить".
Убеждаемся, что файл openssl.cnf скопировался в директорию C:\Program Files\OpenSSL-Win64\bin.
Как использовать
Теперь для корректной работы OpenSSL есть два варианта:
1) Можно запускать OpenSSL по абсолютному пути, каждый раз набирая в командной строке C:\Program Files\OpenSSL-Win64\bin\openssl.exe".
2) Можно в командной строке поменять путь по умолчанию, набрав команду cd "C:\Program Files\OpenSSL-Win64\bin" (не забываем наживать Enter):
После выполнения этой команды видно, что путь поменялся с C:\Window\System32 на C:\Program Files\OpenSSL-Win64\bin:
Теперь в этой открытой консоли можно выполнять команды OpenSSL просто набирая openssl.exe" и всё будет корректно работать.
Скачать готовое рабочее решение OpenSSL для генерации самоподписанного SSL сертификата
Пройдя весь этот заковыристый путь (и зафиксировав его в этой статье), я просто скопировал в отдельную директорию содержимое C:\Program Files\OpenSSL-Win64\bin вместе со скопированным туда файлом openssl.cnf (без вложенных директорий) и оно из этой директории также работает.
Соответственно, если Вам всего лишь нужно сгенерировать самоподписанный SSL сертификат, то Вы можете просто СКАЧАТЬ рабочий архив с OpenSSl, распаковать его куда Вам удобно, в командной строке поменять путь по-умолчанию (как показано выше) и спокойно использовать OpenSSL для своих целей.