Что эквивалентно команде/скрипту Unix c_rehash в Linux?

Я следую инструкциям по импорту сертификата со всей его цепочкой в ​​хранилище ключей. Проблема, с которой я сталкиваюсь, заключается в том, что в моей системе нет c_rehash:

user@hostanme$ c_rehash ./certs
-bash: c_rehash: command not found

Я нашел параметр -subject_hash для openssl x509, но не знаю, как чтобы использовать его для репликации всего, что делает c_rehash.

Как я могу хешировать каталог сертификата без команды/скрипта c_rehash?


person Wojtek    schedule 17.09.2014    source источник


Ответы (3)


c_rehash требует "perl" для выполнения. Если вы не можете запустить c_rehase, попробуйте ниже.

используйте «openssl» в файле оболочки

for file in *.pem; do ln -s "$file" "$(openssl x509 -hash -noout -in "$file")".0; done
person agfe2    schedule 05.01.2015
comment
Требуется больше кавычек, чтобы быть правильным - это не будет работать правильно, если в именах ваших сертификатов есть пробелы. Рассмотрим ln -s "$file" "$(openssl x509 -hash -noout -in "$file")". - person Charles Duffy; 27.02.2016

Команда c_rehash доступна в пакете openssl-perl.

Источник: https://bugzilla.redhat.com/show_bug.cgi?id=461123 Проверено на RHEL7

person Cameron Kerr    schedule 24.05.2018

user@hostanme$ c_rehash ./certs
-bash: c_rehash: команда не найдена

Вам либо нужно установить OpenSSL (возможно, версию для разработчиков), либо вам нужно поместить его каталог bin/ в путь:

$ find /usr -iname c_rehash
/usr/bin/c_rehash
/usr/local/ssl/darwin/bin/c_rehash
/usr/local/ssl/macosx-x64/bin/c_rehash
/usr/local/ssl/macosx-x86/bin/c_rehash

И убедитесь, что вы используете правильный. Если я правильно помню, OpenSSL 0.9.8 использует MD5, а OpenSSL 1.0.0 и выше использует SHA1.

person jww    schedule 25.09.2014