
openssl openssl-4.0.3
Универсальная библиотека TLS и криптографии
Добро пожаловать в проект OpenSSL
[![openssl logo]][www.openssl.org]
[![github actions ci badge]][github actions ci]
OpenSSL — это надёжный, промышленного уровня, полнофункциональный набор инструментов с открытым исходным кодом для протоколов Transport Layer Security (TLS, ранее SSL), Datagram TLS (DTLS) и QUIC.
Реализации протоколов основаны на мощной криптографической библиотеке общего назначения, которую можно использовать и самостоятельно. Также включён криптографический модуль, сертифицированный по стандартам FIPS.
OpenSSL произошёл от библиотеки SSLeay, разработанной Эриком А. Янгом (Eric A. Young) и Тимом Дж. Хадсоном (Tim J. Hudson).
Официальная домашняя страница проекта OpenSSL — [www.openssl.org].
Содержание
Обзор
Набор инструментов OpenSSL включает:
-
libssl реализацию всех версий протокола TLS до TLSv1.3 ([RFC 8446]), протоколов DTLS до DTLSv1.2 ([RFC 6347]) и протокола QUIC версии 1 ([RFC 9000]).
-
libcrypto мощную криптографическую библиотеку общего назначения. Она составляет основу реализации TLS, но может использоваться и независимо.
-
openssl инструмент командной строки OpenSSL, швейцарский нож для криптографических задач, тестирования и анализа. Его можно использовать для:
- создания ключевых параметров
- создания сертификатов X.509, CSR и CRL
- вычисления дайджестов сообщений
- шифрования и расшифровки
- тестирования клиентов и серверов SSL/TLS/DTLS
- тестирования клиентов QUIC
- обработки подписанных или зашифрованных писем S/MIME
- и многое другое...
Загрузка
Для производственного использования
Исходные коды в виде tarball официальных версий можно загрузить с openssl-library.org/source/. Проект OpenSSL не распространяет набор инструментов в бинарном виде.
Однако для большого разнообразия операционных систем доступны предварительно скомпилированные версии набора инструментов OpenSSL. В частности, на Linux и других Unix-подобных операционных системах обычно рекомендуется компоноваться с предварительно скомпилированными общими библиотеками, предоставляемыми дистрибьютором или вендором.
Мы также ведём список сторонних организаций, которые создают двоичные сборки OpenSSL для различных операционных систем (включая Windows), на странице [Binaries] в нашей вики.
Для тестирования и разработки
Хотя в теории тестирование и разработку можно вести, используя исходные tarball’ы, наличие локальной копии git-репозитория со всей историей проекта даёт гораздо больше понимания кодовой базы.
Основной Git-репозиторий OpenSSL является закрытым. Существует публичное зеркало на GitHub по адресу [github.com/openssl/openssl], которое автоматически обновляется из основного репозитория при каждом коммите.
Локальную копию Git-репозитория можно получить, клонировав её из зеркала на GitHub с помощью
git clone https://github.com/openssl/openssl.git
Если вы намерены внести вклад в OpenSSL — исправить ошибки или добавить новые возможности — вам необходимо сделать форк зеркала на GitHub и клонировать свой публичный форк.
git clone https://github.com/yourname/openssl.git
Это необходимо, потому что всё развитие OpenSSL в настоящее время осуществляется через pull request’ы на GitHub. Подробнее см. в разделе Участие.
Сборка и установка
После получения исходного кода ознакомьтесь с файлом INSTALL для получения подробных инструкций по сборке и установке OpenSSL. Для некоторых платформ инструкции по установке дополнены платформенно-специфичными документами.
- Заметки для платформ, подобных UNIX
- Заметки для платформ Android
- Заметки для платформ Windows
- Заметки для платформы DOS с DJGPP
- Заметки для платформы OpenVMS
- Заметки по Perl
- Заметки по Valgrind
Специфические заметки по обновлению до OpenSSL 3.x с предыдущих версий можно найти на странице руководства [ossl-guide-migration(7ossl)].
Документация
README файлы
В корневом каталоге исходного кода есть несколько файлов README.md, содержащих дополнительную информацию по конкретным темам.
- Информация о реализации протокола QUIC в OpenSSL
- Информация об архитектуре провайдеров OpenSSL
- Информация об использовании сертифицированного модуля FIPS в OpenSSL
Руководство OpenSSL
В рамках [Руководства OpenSSL] доступны некоторые учебные и вводные страницы по важным темам OpenSSL.
Страницы руководства
Страницы руководства для ветки master и всех текущих стабильных выпусков доступны онлайн.
Демонстрации
В подпапке demos есть множество демонстрационных исходных кодов для использования различных возможностей OpenSSL.
Вики
Существует [GitHub Вики], которая в настоящее время не очень активна.
Лицензия
OpenSSL распространяется по лицензии Apache License 2.0, что означает, что вы можете свободно получать и использовать его в коммерческих и некоммерческих целях при соблюдении её условий.
Для получения дополнительных сведений см. файл LICENSE.txt.
Поддержка
Существуют различные способы связи. Правильный канал зависит от ваших потребностей. Дополнительную информацию см. в файле SUPPORT.
Участие
Если вы заинтересованы и готовы внести вклад в проект OpenSSL, ознакомьтесь с файлом CONTRIBUTING.