openssl-rehash
名称
openssl-rehash, c_rehash - 创建以哈希值命名的文件的符号链接
语法
openssl rehash [-h] [-help] [-old] [-compat] [-n] [-v] [-provider name] [-provider-path path] [-propquery propq] [directory] ...
c_rehash [-h] [-help] [-old] [-n] [-v] [-provider name] [-provider-path path] [-propquery propq] [directory] ...
描述
此命令通常等同于外部脚本 c_rehash,除了下面提到的细微差别。
openssl rehash 扫描目录并计算指定目录列表中每个 .pem、.crt、.cer 或 .crl 文件的哈希值,并为每个文件创建符号链接,其中链接的名称为哈希值。(如果平台不支持符号链接,则会创建一个副本。)此命令很有用,因为许多使用 OpenSSL 的程序需要像这样设置目录才能找到证书。
如果命令行上命名了任何目录,则依次处理这些目录。否则,将参考 SSL_CERT_DIR 环境变量;这应该是一个用冒号分隔的目录列表,类似于 Unix 的 PATH 变量。如果未设置,则处理默认目录(特定于安装,但通常为 /usr/local/ssl/certs)。
为了处理目录,用户必须对该目录具有写权限,否则将生成错误。
创建的链接格式为 HHHHHHHH.D,其中每个 H 都是一个十六进制字符,D 是一个十进制数字。当处理目录时,首先删除其中所有名称采用该语法的链接,即使它们用于其他目的。要跳过删除步骤,请使用 -n 标志。CRL 的哈希值看起来类似,只是在句点后出现字母 r,如下所示:HHHHHHHH.rD。
多个对象可能具有相同的哈希值;它们将通过递增 D 值来指示。通过比较完整的 SHA-1 指纹来查找重复项。如果找到重复项,将显示警告。
如果文件无法解析为证书或 CRL,或者文件中出现多个此类对象,也将显示警告。
脚本配置
c_rehash 脚本使用 openssl 程序来计算哈希值和指纹。如果在用户的 PATH 中找不到,则将 OPENSSL 环境变量设置为完整路径名。可以使用任何程序,它将按如下方式为证书或 CRL 调用:
$OPENSSL x509 -hash -fingerprint -noout -in FILENAME
$OPENSSL crl -hash -fingerprint -noout -in FILENAME
其中 FILENAME 是文件名。它必须在第一行输出文件的哈希值,在第二行输出指纹,可以选择在前面加上一些文本和等号。
选项
- -help -h
-
显示简短的使用信息。
- -old
-
使用旧式哈希(MD5,而不是 SHA-1)生成链接,用于 1.0.0 之前的版本。请注意,当前版本将不使用旧式哈希。
- -n
-
不要删除现有链接。当在同一目录中保留新旧式链接时需要此选项。
- -compat
-
为旧式(MD5)和新式(SHA1)哈希生成链接。这允许 1.0.0 之前的版本与更新的版本一起使用这些链接。
- -v
-
打印有关已删除的旧链接和已创建的新链接的消息。默认情况下,此命令仅在处理每个目录时列出它。
- -provider name
- -provider-path path
- -propquery propq
环境
- OPENSSL
-
用于生成哈希值和指纹的可执行文件的路径(请参见上文)。
- SSL_CERT_DIR
-
要操作的目录的冒号分隔列表。如果命令行上列出了目录,则忽略此选项。
参见
openssl(1)、openssl-crl(1)、openssl-x509(1)
版权
版权所有 2015-2020 OpenSSL 项目作者。保留所有权利。
根据 Apache 许可证 2.0(“许可证”)获得许可。除非符合许可证,否则您不得使用此文件。您可以在源代码分发中的 LICENSE 文件或 https://www.openssl.org/source/license.html 中获取副本。