Как установить openssl на windows 10

Обновлено: 04.07.2024

Это руководство проведет вас через установку OpenSSL на Windows с Cygwin. OpenSSL - очень полезный набор инструментов командной строки с открытым исходным кодом для работы с SSL /TLS сертификаты и запросы на подпись сертификатов (CSRс). С OpenSSL вы можете легко:

Пользователи Windows 10 теперь могут легко использовать OpenSSL, позволяет Подсистема Linux в Windows 10. Официальные двоичные файлы cURL для Windows также включают OpenSSL. Примечание: Если вы используете ОС на базе Unix / Linux, такую ​​как Ubuntu или macOS, возможно, у вас уже установлен OpenSSL. Вы можете подтвердить это и проверить установленную версию с помощью команды openssl version , Дистрибутивы Linux, вероятно, будут отображать что-то вроде OpenSSL 1.1.1 11 Sep 2018 . macOS использует разветвленную версию OpenBSD, LibreSSLтак что вы, вероятно, увидите что-то вроде LibreSSL 2.6.5 .

Установите Cygwin и OpenSSL

Cygwin предлагает простой способ установить большую коллекцию бесплатного программного обеспечения с открытым исходным кодом (включая OpenSSL) в Windows. Чтобы установить Cygwin с OpenSSL:

Пакеты Cygwin

Откройте установщик .exe файл и нажмите Следующая> кнопка в открывшемся окне. (Возможно, вам придется нажать на предупреждение контроля учетных записей, чтобы запустить установщик.)

Настройка Cygwin

Убедитесь, что Установить из интернета затем нажмите Следующая> кнопку.

Установить из интернета

Оставлять Корневая директория и Установить для с настройками по умолчанию (если вы не знаете, что у вас есть причины их изменить), затем нажмите Следующая> кнопку.

Выберите каталог установки

Выберите локальный каталог пакета, затем щелкните значок Следующая> кнопка. (Опять же, по умолчанию, вероятно, хорошо.)

Выберите локальный каталог пакетов

Выберите подходящий параметр для подключения к Интернету, затем щелкните значок Следующая> кнопку.

Выберите тип подключения

Выберите сайт загрузки из списка, затем нажмите Следующая> кнопку.

Выберите сайт загрузки

Установщик загрузит приложение установки и запустит его.

Загрузка программы Cygwin

Введите «openssl» в Поиск поле, затем перейдите к Все> База в Упаковка колонка.


Найдите линию с OpenSSLзатем выберите самую последнюю версию в раскрывающемся меню справа от НОВИНКИ колонка.

Выбрать версию

На этом этапе вы можете продолжить поиск и выбор пакетов, которые хотите установить, или просто продолжить установку (вы всегда можете повторно запустить приложение, чтобы установить или удалить отдельные пакеты). Когда будете готовы, щелкните Следующая> кнопку.

Нажмите на Следующая> снова.

Cygwin Setup начнет загрузку необходимых файлов для установки. В базовой установке Cygwin много файлов, поэтому для ее завершения может потребоваться некоторое время.

Прогресс

Выберите, хотите ли вы создавать значки на рабочем столе и / или в меню «Пуск», затем нажмите кнопку Завершить кнопку.

Завершить

Убедитесь, что вы установили OpenSSL, открыв приложение терминала Cygwin и набрав openssl version в командной строке. Все готово!

Командная строка

Обучающие видео по OpenSSL

Я также хотел создать OPEN SSL для Windows 10. Простой способ сделать это без риска установки неизвестного программного обеспечения со сторонних веб-сайтов и риска заражения вирусами - это использовать openssl.exe, который входит в ваш Git для Установка Windows. В моем случае я обнаружил открытый SSL в следующем месте установки Git для Windows.

C: \ Program Files \ Git \ usr \ bin \ openssl.exe.

Если вы также хотите инструкции о том, как использовать OPENSSL для создания и использования сертификатов. Вот рецензия на мой блог. Пошаговые инструкции сначала объясняют, как использовать Microsoft Windows по умолчанию, а также ОТКРЫТЬ SSL и объясняют разницу между ними.

Если у вас установлен шоколад, вы можете установить openssl с помощью одной команды, т.е.

Если у вас установлен Git,

вы можете открыть Git Bash (нажмите Shift + щелкните правой кнопкой мыши в папке -> Git Bash Here) и используйте openssl команда прямо в Баше

Вы можете установить openssl используя одну единственную строку , если вы шоколадным установлены

  1. открыть команду в режиме администратора
  2. тип choco install openssl

У вас установлен Git? Вы можете получить доступ к команде openssl из git bash, не добавляя никаких переменных среды.

Но если вы хотите получить доступ к команде openssl из Windows cmd, следуйте за мной:

  1. Найдите путь к каталогу bin Git. Обычно это в

затем добавьте путь к вашей переменной среды (Пользовательские переменные-> Путь):


  1. Теперь откройте новую командную строку (не используйте уже открытый cmd, потому что уже открытый cmd не знает новую переменную среды).

Либо установите openssl, присутствующий в Git, как ваш openssl по умолчанию, и включите его в свой путь в переменных среды (быстрый способ)

  1. Установите системный openssl по этой ссылке.
  2. установите следующую переменную: установите OPENSSL_CONF=LOCATION_OF_SSL_INSTALL\bin\openssl.cfg
  3. Обновите путь: установите Path=. Other Values ​​here. ;LOCATION_OF_SSL_INSTALL\bin

Некропостинг, но может быть полезен другим.

Всегда есть официальная страница: [OpenSSL.Wiki]: двоичные файлы, которая содержит полезные URL-адреса.

  • v1.0.2u построен с OpenSSL-FIPS2.0.16
  • Артефакт представляет собой .zip, который следует распаковать в "C:\Program Files" (пожалуйста, посмотрите файл Readme.md, а также тот, который находится в корне репозитория)

Недавно мне нужно было задокументировать, как установить его версию, поэтому я скопировал здесь свои шаги, поскольку в других ответах использовались источники, отличные от того, что я рекомендую, а именно Cygwin. Мне нравится Cygwin, потому что он в хорошем состоянии и предоставляет множество других утилит для Windows. Cygwin также позволяет легко обновлять версии по мере необходимости, когда уязвимости исправлены. Пожалуйста, часто обновляйте свою версию OpenSSL!

Откройте командную строку Windows и проверьте, установлен ли у вас OpenSSL, введя: openssl version

Как правило, загрузите и запустите приложение Cygwin для установки Windows, чтобы установить и при необходимости обновить приложение OpenSSL:


Используйте инструмент командной строки, чтобы войти в каталог установки и выполнить «perl example.pl». Если отображается «Hello from ActivePerl!», Установка Perl прошла успешно.


2. Разархивируйте исходный код openssl в указанный каталог.


3 Войдите в интерфейс командной строки, который поставляется с VS2017, в этой статье вводится командная строка собственных инструментов x64 для VS2017


4 Войдите в каталог декомпрессии openssl


5 Введите perl Configure VC-WIN64A no-asm --prefix = openssl

Примечание: префикс указывает каталог установки и платформу установки VC-WIN64A. Если вы загружаете openssl более поздней версии, например openssl-1.0.2g, вам нужно добавить здесь no-asm, чтобы указать, что сборка не используется, если вы не добавляете ее , Ошибка возникает при выполнении команды nmake

6 Ввод: ms \ do_ms.bat

7 .Компилировать динамические и статические библиотеки
Запустите nmake -f ms \ ntdll.mak, чтобы скомпилировать динамическую библиотеку
Выполнить make для компиляции. После выполнения в каталоге openssl-1.0.2g будет создана папка out32dll, которая содержит некоторые статические библиотеки, динамические библиотеки и файлы .exe.

8 Библиотека компиляции тестов

nmake -f ms\ntdll.mak test

Убедитесь, что предыдущий шаг компиляции прошел успешно, в случае успеха в конце будет отображаться слово «пройдены все тесты»

9 Выполните команду: nmake -f ms \ ntdll.mak install

В случае успеха в каталоге C: \ openssl-1.0.2g будут созданы четыре папки: bin, include, lib и ssl.

Возможное решение проблемы:

Итак, запустите ppm install dmake


2 Введите ms \ do_nasm



Скомпилируйте файл успешно


Если вышеуказанное не может быть успешно скомпилировано, вы можете загрузить и установить программу Openssl напрямую, и программу exe можно установить.


Путь после установки


Установить переменные среды

Щелкните правой кнопкой мыши Мой компьютер> Свойства> Расширенные настройки системы> Переменные среды Найдите путь и добавьте его, затем перезагрузите компьютер.

Однажды мне потребовалось создать защищенный канал связи между своим сервером и своим приложением. Я помнил, что в документации к Boost Asio упоминалось, что он может работать с защищенными соединениями, используя OpenSSL. Я начал искать информацию по этой теме, но, увы, мало что нашел, тем более под Windows. Так что теперь, разобравшись с этим вопросом, я решил написать эту инструкцию, чтобы другим людям было проще разобраться.

Задача — нужно собрать под Windows сервер и клиент, используя Boost Asio и OpenSSL, чтобы клиент и сервер обменивались информацией по защищенному TLS-каналу. Для пример, я решил взять вот этот клиент и сервер с официального сайта Boost.

Для того чтобы решить эту задачу, нам нужно собрать OpenSSL, подготовить ключи и сертификаты, и собрать оба примера с использованием Boost Asio, OpenSSL.

Установка OpenSSL под Windows

Для сборки OpenSSL я использовал MS Visual Studio 2013, и я собирал статическую библиотеку.

Последовательность сборки следующая:
Сначала нужно сконфигурировать OpenSSL с помощью скрипта на Perl, под Win32. Ниже по тексту я буду считать, что OpenSSL у вас находится в C:\Work\OpenSSL. Вам следует зайти в этот каталог и вызвать скрипт конфигурации:

  • Здесь явно задан параметр --prefix и указан путь, где будет лежать результат сборки. OpenSSL будет лежать в отдельном подкаталоге \output и не будет смешиваться с исходными файлами.
  • Здесь же задан параметр enable-deprecated — это означает, что в сборку будут включен deprecated-код. Я пробовал собрать без этого параметра, и Boost Asio жаловался на отсутствие функций CRYPTO_set_id_callback из openssl\crypto.h и DH_free из openssl\dh.h и поэтому я решил собрать с параметром enable-deprecated.
  • По непонятным мне причинам, конфигуратор не добавляет исходную директорию C:\Work\OpenSSL в список директорий для поиска *.h файлов, поэтому я добавил -I$(SRC_D), чтобы заставить компилятор искать там заголовочные файлы. Вместо этого вы можете добавить -IC:\Work\OpenSSL. Другой вариант — после того, как вы вызовете ms\do_nasm, просто отредактируйте вручную файл ms\nt.mak и впишите туда путь к исходникам.


На этом нужно закрыть обычную командную строку, и запустить командную строку MS Visual Studio, в которой определены дополнительные пути к файлам и дополнительные переменные окружения. Вы можете найти командную строку MS Visual Studio в каталоге C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts.

Из командной строки MS Visual Studio нужно перейти в каталог C:\Work\OpenSSL и запустить сборку с помощью nmake:


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

  • Убедитесь, что вы добавили путь к nasm.exe в переменную среды PATH
  • Убедитесь, что вы запускаете сборку из каталога C:\Work\OpenSSL
  • Убедитесь, что вы запускаете сборку не из обычной командной строки, а из командной строки MS Visual Studio.

После того, как сборка завершилась, нужно скопировать библиотеки и исходные файлы в новый каталог:


На этом сборка OpenSSL под Windows завершена.

Сборка клиента и сервера

Как я и сказал раньше, для примера я решил взять вот эти клиент и сервер из документации по Boost Asio. Однако при попытке сборки я столкнулся с некоторыми проблемами, и в результате мне пришлось модифицировать исходники.

  • 27 января 2015 года в OpenSSL внесли очень большой и важный коммит, который вынес много разных структур, объявлений и функций из главного заголовка ssl.h в внутренний заголовок ssl_locl.h. Эти все структуры используются в Boost Asio, поэтому нужно подключить этот файл ssl_locl.h.
  • Заголовок ssl_locl.h также ссылается на заголовок packet_locl.h, а в нем на 411 строчке происходит неявное преобразование из void* в unsigned char*:

Хотя это место и объявлено как extern «C», и с точки зрения С тут нет никаких ошибок, но Visual Studio не дает нам никакой возможности отключить эту ошибку. Мне пришлось вносить изменения и преобразовывать тип явно:

Исходный код сервера:

Исходный код клиента:

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

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

После сборки в каталоге C:\Work\OpenSSL\output\bin будет лежать openssl.exe, нужно воспользоваться им, чтобы сгенерировать ключи и сертификаты.

Для начала создаем приватный ключ для корневого сертификата:


Потом на основе этого ключа создаем корневой сертификат, действующий 20000 дней:


В интерактивном меню вас попросят ввести двухбуквенный код страны, провинцию, город, организацию, подразделение, Common Name и e-mail адрес. Нужно заполнить все поля на свое усмотрение.

Теперь нужно создать другой сертификат, подписанный корневым сертификатом.

Создаем еще один ключ:


Создаем запрос на подпись:


В интерактивном меню вам потребуется ответить на те же вопросы, что и при создании корневого сертификата. Нужно, чтобы введенный вами Common Name отличался от Common Name у корневого сертификата, это важно!

Теперь подписываем этот запрос корневым сертификатом:


На всякий случай можно проверить, что подписано все правильно:


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

Вторая команда должна вернуть ОК, потому что user.crt подписан корневым сертификатом.

Последняя команда должна вернуть ошибку, потому что user.crt не является самоподписанным. Если последняя команда возвращает OK, значит что-то пошло не так. В моем случае для исправления нужно было всего лишь сделать Common Name у обоих сертификатов различающимся.

И напоследок, нам еще понадобится DH-параметры, которые нужны для Протокола Диффи — Хеллмана, нужно их сгенерировать. Генерация займет некоторое время:


На этом все, теперь достаточно прописать клиенту и серверу пути к этим файлам, и вы сможете установить между ними защищенное соединение.

Читайте также: