Linux上的Unix c_rehash命令/脚本相当于什么?

时间:2014-09-17 11:28:56

标签: ssl openssl ssl-certificate

我按照有关如何导入a certificate with its whole chain into a keystore的说明进行操作。 我面临的问题是我的系统上没有c_rehash:

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

我找到了-subject_hash option of openssl x509,但我不知道如何使用它来复制c_rehash所做的一切。

如何在没有c_rehash命令/脚本的情况下散列证书目录?

3 个答案:

答案 0 :(得分:7)

c_rehash需要“perl”才能执行。 如果您无法运行c_rehase,请尝试以下。

在Shell文件中使用“openssl”

for file in *.pem; do ln -s "$file" "$(openssl x509 -hash -noout -in "$file")".0; done

答案 1 :(得分:1)

  

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。

答案 2 :(得分:0)

openssl-perl软件包中提供了c_rehash命令

来源:https://bugzilla.redhat.com/show_bug.cgi?id=461123 在RHEL7上验证