Как установить 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:
Откройте установщик .exe файл и нажмите Следующая> кнопка в открывшемся окне. (Возможно, вам придется нажать на предупреждение контроля учетных записей, чтобы запустить установщик.)
Убедитесь, что Установить из интернета затем нажмите Следующая> кнопку.
Оставлять Корневая директория и Установить для с настройками по умолчанию (если вы не знаете, что у вас есть причины их изменить), затем нажмите Следующая> кнопку.
Выберите локальный каталог пакета, затем щелкните значок Следующая> кнопка. (Опять же, по умолчанию, вероятно, хорошо.)
Выберите подходящий параметр для подключения к Интернету, затем щелкните значок Следующая> кнопку.
Выберите сайт загрузки из списка, затем нажмите Следующая> кнопку.
Установщик загрузит приложение установки и запустит его.
Введите «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 используя одну единственную строку , если вы шоколадным установлены
- открыть команду в режиме администратора
- тип choco install openssl
У вас установлен Git? Вы можете получить доступ к команде openssl из git bash, не добавляя никаких переменных среды.
Но если вы хотите получить доступ к команде openssl из Windows cmd, следуйте за мной:
- Найдите путь к каталогу bin Git. Обычно это в
затем добавьте путь к вашей переменной среды (Пользовательские переменные-> Путь):
- Теперь откройте новую командную строку (не используйте уже открытый cmd, потому что уже открытый cmd не знает новую переменную среды).
Либо установите openssl, присутствующий в Git, как ваш openssl по умолчанию, и включите его в свой путь в переменных среды (быстрый способ)
- Установите системный openssl по этой ссылке.
- установите следующую переменную: установите OPENSSL_CONF=LOCATION_OF_SSL_INSTALL\bin\openssl.cfg
- Обновите путь: установите 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-параметры, которые нужны для Протокола Диффи — Хеллмана, нужно их сгенерировать. Генерация займет некоторое время:
На этом все, теперь достаточно прописать клиенту и серверу пути к этим файлам, и вы сможете установить между ними защищенное соединение.
Читайте также: