Как установить OpenSSL на Windows 10?

Привет. Сегодня чисто кратенький пост о том, как я 3 дня трахался с установкой OpenSSL на Windows 10.

Зачем вообще кому-то надо устанавливать OpenSSL? Ну, очевидно, что чаще всего из-за того, что это зависимость для какого-либо другого продукта, который мы хотим заиспользовать. Это может быть MongoDB, или Apache, или Anaconda. В моём же случае мне потребовалась данная либа для https://github.com/pions/webrtc — A pure Golang implementation of the WebRTC Native API.

Вообще у парней на гитхабе есть инструкция, как это сделать. Но у меня нехера не вышло по ней, поэтому я решил написать свой гайд.

Они говорят:

  • Установите mingw-w64
  • Установите pkg-config-lite
  • Скомилируйте или скачайте скомпиленный mingw32-w64
  • Установите переменную окружения PKG_CONFIG_PATH, на папку, которая будет содержать файл openssl.pc (в моём случае, это C:\msys64\opt\windows_64\lib64\pkgconfig).

Но, нихера не работало. Я получал целый букет ошибок, каждая из которых говорила ровным счётом ничего. Например, The code execution cannot proceed because ssleay32.dll was not found. Или ещё была ошибка Ordinal 4684 could not be located ssleay32.dll. А ещё — Entry Point Not Found. В общем, всё, как мы любим в Windows. Логов нихера нет, а тексты ошибок полностью бесполезные.

Ладно, перйдём к тому, как же я сам усатновил OpenSSL.

  • Установил MSYS2. Сейчас установочный файл называется msys2-x86_64-20180531.exe
  • Скачал pkg-config-lite, и добавил путь до файла pkg-config.exe в переменную окружения PATH. В моём случае, это папка C:\msys64\opt\windows_64\bin.
  • В Шелле C:\msys64\msys2.exe запустил pacman -S mingw-w64-x86_64-openssl
  • В Шелле C:\msys64\msys2.exe запустил pacman -S mingw-w64-x86_64-gcc
  • В Шелле C:\msys64\msys2.exe запустил pacman -S openssl
  • Установил переменную окружения PKG_CONFIG_PATH, на папку, которая содержит файл openssl.pc (в моём случае, это C:\msys64\opt\windows_64\lib64\pkgconfig).
  • Добавил в переменную окружения PATH путь до C:\msys64\opt\windows_64\bin
  • В файле C:\msys64\opt\windows_64\lib64\pkgconfig\openssl.pc посмотрел версию OpenSSL. В моём случае, это 1.0.1m
  • Скачал OpenSSL версии 1.0.1m вот тут вот — https://indy.fulgan.com/SSL/. В моём случае, я скачал https://indy.fulgan.com/SSL/openssl-1.0.1m-x64_86-win64.zip
  • Распаковал архив openssl-1.0.1m-x64_86-win64.zip в папку C:\msys64\opt\windows_64\bin\. В частности, теперь в этой папке у меня есть 3 новых файла — libeay32.dll, openssl.exe, ssleay32.dll.

После выполнения этих простых шагов, я получил рабочий OpenSSL, с которым легко залинковалась моя Go-программа. Всё выглядит примерно вот так вот:
openssl

Надеюсь, когда-нибудь мы с вами сможем устанавливать библиотеки также, как на Линуксах. Там это куда проще — sudo apt-get install libssl-dev.

Категории: Программирование