c_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(1),《openssl(1)》中的 "提供者選項",provider(7) 和 property(7)。
環境
- OPENSSL
-
用於生成雜湊值和指紋的可執行文件的路徑(參見上文)。
- SSL_CERT_DIR
-
以冒號分隔的目錄列表,用於操作。如果在命令行中列出了目錄,則忽略。
參見
openssl(1),《openssl-crl(1)》、《openssl-x509(1)》
版權
版權 2015-2020 OpenSSL 項目作者。保留所有權利。
根據 Apache License 2.0("許可證")許可。除非符合許可證的規定,否則您不得使用此文件。您可以在源分發中的 LICENSE 文件中或在 https://www.openssl.org/source/license.html 中獲得副本。