2015-02-21 4 views
2

Я хочу создать самозаверяющий сертификат (root ca) с OpenSSL. Алгоритм подписи должен быть сигнатурой ECDSA с хэшем SHA-256. На моей Mac OS X (Yosemite) у меня установлена ​​OpenSSL версия 0.9.8zc (с 15 октября 2014 г.). Когда я вызываю openssl ciphers -v в командной строке, кажется, что моя текущая версия OpenSSL не поддерживает SHA2 (с SHA-256 и т. Д.).OpenSSL на Mac OS X для алгоритма подписи SHA-256

DHE-RSA-AES256-SHA  SSLv3 Kx=DH  Au=RSA Enc=AES(256) Mac=SHA1 
DHE-DSS-AES256-SHA  SSLv3 Kx=DH  Au=DSS Enc=AES(256) Mac=SHA1 
AES256-SHA    SSLv3 Kx=RSA  Au=RSA Enc=AES(256) Mac=SHA1 
EDH-RSA-DES-CBC3-SHA SSLv3 Kx=DH  Au=RSA Enc=3DES(168) Mac=SHA1 
EDH-DSS-DES-CBC3-SHA SSLv3 Kx=DH  Au=DSS Enc=3DES(168) Mac=SHA1 
DES-CBC3-SHA   SSLv3 Kx=RSA  Au=RSA Enc=3DES(168) Mac=SHA1 
DES-CBC3-MD5   SSLv2 Kx=RSA  Au=RSA Enc=3DES(168) Mac=MD5 
DHE-RSA-AES128-SHA  SSLv3 Kx=DH  Au=RSA Enc=AES(128) Mac=SHA1 
DHE-DSS-AES128-SHA  SSLv3 Kx=DH  Au=DSS Enc=AES(128) Mac=SHA1 
AES128-SHA    SSLv3 Kx=RSA  Au=RSA Enc=AES(128) Mac=SHA1 
DHE-RSA-SEED-SHA  SSLv3 Kx=DH  Au=RSA Enc=SEED(128) Mac=SHA1 
DHE-DSS-SEED-SHA  SSLv3 Kx=DH  Au=DSS Enc=SEED(128) Mac=SHA1 
SEED-SHA    SSLv3 Kx=RSA  Au=RSA Enc=SEED(128) Mac=SHA1 
RC2-CBC-MD5    SSLv2 Kx=RSA  Au=RSA Enc=RC2(128) Mac=MD5 
RC4-SHA     SSLv3 Kx=RSA  Au=RSA Enc=RC4(128) Mac=SHA1 
RC4-MD5     SSLv3 Kx=RSA  Au=RSA Enc=RC4(128) Mac=MD5 
RC4-MD5     SSLv2 Kx=RSA  Au=RSA Enc=RC4(128) Mac=MD5 
EDH-RSA-DES-CBC-SHA  SSLv3 Kx=DH  Au=RSA Enc=DES(56) Mac=SHA1 
EDH-DSS-DES-CBC-SHA  SSLv3 Kx=DH  Au=DSS Enc=DES(56) Mac=SHA1 
DES-CBC-SHA    SSLv3 Kx=RSA  Au=RSA Enc=DES(56) Mac=SHA1 
DES-CBC-MD5    SSLv2 Kx=RSA  Au=RSA Enc=DES(56) Mac=MD5 
EXP-EDH-RSA-DES-CBC-SHA SSLv3 Kx=DH(512) Au=RSA Enc=DES(40) Mac=SHA1 export 
EXP-EDH-DSS-DES-CBC-SHA SSLv3 Kx=DH(512) Au=DSS Enc=DES(40) Mac=SHA1 export 
EXP-DES-CBC-SHA   SSLv3 Kx=RSA(512) Au=RSA Enc=DES(40) Mac=SHA1 export 
EXP-RC2-CBC-MD5   SSLv3 Kx=RSA(512) Au=RSA Enc=RC2(40) Mac=MD5 export 
EXP-RC2-CBC-MD5   SSLv2 Kx=RSA(512) Au=RSA Enc=RC2(40) Mac=MD5 export 
EXP-RC4-MD5    SSLv3 Kx=RSA(512) Au=RSA Enc=RC4(40) Mac=MD5 export 
EXP-RC4-MD5    SSLv2 Kx=RSA(512) Au=RSA Enc=RC4(40) Mac=MD5 export 

Последняя версия OpenSSL, кажется, 1.0.2, но этот источник в https://www.openssl.org/source/, кажется, не быть скомпилированы для OS X, так как файл «Install.MacOS» говорит в самом начале:

«Благодаря Roy Wood начальная поддержка Mac OS (pre X) теперь предоставляется».

Моя попытка установить его, тем не менее, привела к некоторым ошибкам в командной строке.

Может ли кто-нибудь сказать мне, можно ли как-то использовать алгоритм подписи SHA-256 с установкой OpenSSL на Yosemite? Мне кажется странным, если это будет невозможно, но я не эксперт в этой области. Надеюсь на хороший намек!

+0

Дополнительная информация: Проблема с OpenSSL 0.9.8zc заключается в том, что алгоритм подписи, который должен использоваться самозаверяющим сертификатом, должен быть SHA-256. Однако моя версия OpenSSL всегда использует SHA-1, независимо от того, как я пытался указать SHA-256. – Marc

+0

Этот вопрос кажется не по теме, потому что речь идет не о программировании и разработке. См. [Какие темы можно задать здесь] (http://stackoverflow.com/help/on-topic) в Справочном центре. Возможно, [Суперпользователь] (http://superuser.com/), [Unix & Linux Stack Exchange] (http://unix.stackexchange.com/) или [Обмен файлами безопасности] (http: //security.stackexchange .com /) было бы лучше спросить. – jww

ответ

5

Наконец узнал, как это сделать:

  1. Установить доморощенного (см http://brew.sh/index.html) с помощью команды ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  2. Установите последнюю версию OpenSSL с командой brew install openssl
  3. Run brew link --force openssl в терминале, откройте новый и пробег which openssl в нем -> покажет вам /usr/local/bin/openssl
  4. Tada! Теперь, если вы запустите openssl version он будет показывать OpenSSL 1.0.2 22 Jan 2015 (если вы не запускали brew link --force openssl прежде, чем это было бы показано OpenSSL 0.9.8zc 15 Oct 2014)

:) (Найдено намеки на Update OpenSSL on OS X with Homebrew, не знал о доморощенного до или, что мне нужно это получить OpenSSL работает уточненный.

1

Может кто-нибудь сказать мне, если это как-то можно использовать алгоритм подписи SHA-256 с установкой OpenSSL на Yosemite?

Да, но вам нужно установить более новую версию OpenSSL. OS X 0.9.8 не имеет поддержки эллиптической кривой (между прочим).


Последняя версия OpenSSL, кажется, 1.0.2, но этот источник в https://www.openssl.org/source/, кажется, не быть скомпилированы для OS X, так как файл «Install.MacOS» говорит в самом начале :

«Благодаря Рою Вуду теперь предоставляется первая поддержка Mac OS (pre X)».

Игнорировать это, потому что это неправильно.

См. Wiki OpenSSL по адресу Compilation and Installation.30 второго пролета на 64-битной OS X:

export KERNEL_BITS=64 
cd openssl 
./config shared no-ssl2 no-ssl3 no-comp enable-ec_nistp_64_gcc_128 --openssldir=/usr/local 
make all 
sudo make install 

Игнорируйте запрос о make depend, так как вам не нужно.


Связанные: если вы хотите построить жир OpenSSL, затем посмотреть на этот вопрос: Build Multiarch OpenSSL on OS X. Короткий ответ: не пытайтесь, потому что он не будет работать из-за файлов OpenSSL.

Если вы хотите жира библиотеку, то выполните следующие действия:

export KERNL_BITS=64 
./configure ... 
... 

mv libcrypto.a libcrypto-x86_64.a 
mv libssl.a libssl-x86_64.a 

make clean && make dclean 
export KERNL_BITS=32 
./configure ... 
... 

mv libcrypto.a libcrypto-i386.a 
mv libssl.a libssl-i386.a 

lipo -create libcrypto-x86_64.a libcrypto-i386.a -output libcrypto.a 
lipo -create libssl-x86_64.a libssl-i386.a -output libssl.a 

sudo make install 

Lather, прополоскать и повторить для dylibs перед запуском make install. Примечание: i386 должен не использование enable-ec_nistp_64_gcc_128 (IIRC).


Когда вам нужно использовать OpenSSL в ваших программах, вы будете использовать /usr/local/ssl/include как путь заголовка и /usr/local/ssl/lib как путь к библиотеке.

На самом деле, я не использую пути библиотеки, потому что компоновщик OS X игнорирует ваш запрос на статическую привязку. Я использую статическое связывание, чтобы избежать ошибок LD_PRELOAD и DYLD_LIBRARY_PATH (например, компиляция с 1.0.2 в /usr/local/ssl, но загрузка 0.9.8 во время выполнения в /usr/lib). Так что мой компиляции, как выглядит что-то вроде:

gcc foo.c bar.c /usr/local/ssl/lib/libcrypto.a -o foobar.exe 

Архив представляет собой набор объектных файлов (*.o), поэтому их следует указать так же, как и любой другой файл объекта.

0

На OSX El Capitan

  • Установить доморощенного (см http://brew.sh/index.html)
  • Установите последнюю версию OpenSSL с командой brew install openssl
  • Run /usr/local/opt/openssl/bin/openssl sha256

Brew Теперь отказывается связывать OpenSSH с /usr/local/bin даже если вы используете опцию --force, поэтому вам нужно запустить openssh от bre w установить местоположение или ссылку на него самостоятельно.

Смежные вопросы