Как создать статические библиотеки openssl libssl.a и libcrypto.a

#openssl

#openssl

Вопрос:

Я хочу создать статические библиотеки openssl, совместимые с glibc 2.17. Я хочу сделать это на centos7 с помощью gcc 4.8.5 20150623.

Мои вопросы:

  • Какой источник openssl я должен использовать для достижения этой цели? (совместим с glibc 2.17)
  • Какие параметры я должен предоставить в ./config для создания libssl.a amp; libcrypto.a
  • Какие параметры я должен использовать для создания?

Прямо сейчас, когда я использую ./config -shared amp; make, он создает только libcrypto.a, а не libssl.a

Ответ №1:

Соответствие требованиям FIPS 140-2 на самом деле не имеет отношения к OpenSSL. Как программное обеспечение общего назначения, OpenSSL не реализует и не может реализовать верхние уровни 140-2 (я еще не проработал -3, ленивый я, но это еще не относится к OpenSSL и, возможно, никогда), и он реализует как одобренные, так и не одобренные алгоритмы во всех сборках, независимо от FIPS.

Проверка (и сертификация) FIPS 140-2 — это другое дело. Для достижения проверки OpenSSL был эффективно разделен на внутреннее ядро, называемое «Контейнером FIPS», которое реализует требуемые примитивы и может быть проверено, и оставшуюся часть «полного» OpenSSL, которая включает в себя другие алгоритмы и такие вещи, как сертификаты, сообщения, файлы, протоколы и т. Д., Которые не охватываются FIPS 140. Таким образом, чтобы использовать это, вы должны (по порядку):

  • (загрузите и) отдельно создайте контейнер FIPS, следуя спецификациям политики безопасности (и руководству пользователя), доступным на https://www.openssl.org/docs/fips.html (первые также зарегистрированы и заархивированы в CMVP)
  • (загрузите и) создайте версию OpenSSL с поддержкой FIPS, которая совместима с контейнером FIPS и ссылается на него; в настоящее время для контейнера FIPS 2.0 это OpenSSL версии 1.0.1 или 1.0.2
  • используйте OpenSSL с поддержкой FIPS в своих программах, либо в режиме FIPS, либо нет, как вы выбираете; только работа в режиме FIPS соответствует требованиям для правительственных систем США

Обратите внимание, что список протестированных (и проверенных) конфигураций в Политике безопасности не включает CentOS, поэтому, если вы не сможете установить эквивалентность, ваш результат все равно не будет считаться проверенным.

Комментарии:

1. Спасибо dave_thompson_085. Мое основное внимание уделяется созданию статических библиотек openssl libssl.a и libcrypto.a, которые совместимы с glibc 2.17. и с gcc 4.8.5. Я пропустил требование соответствия FIPS.

2. Вам действительно нужно создавать OpenSSL самостоятельно или openssl11-static пакет RPM (предоставляющий обе статические библиотеки) из EPEL 7 уже достаточно хорош?

3. (извините, я пропустил это раньше) По крайней мере, хотя 1.1.1 каждая сборка должна включать. a — это как для криптографии, так и для ssl, независимо от того, получаете ли вы .so или нет (по умолчанию в версии 1.1.0 выше, но ниже это нужно было запрашивать). Если вы их не получаете, проверьте выходные данные make.