OpenSSL

密碼學和 SSL/TLS 工具包

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(1) 中的「Provider Options」provider(7)property(7)

環境

OPENSSL

用於產生雜湊和指紋的可執行檔路徑(請參閱上方)。

SSL_CERT_DIR

要操作的目錄清單,以冒號分隔。如果在命令列中列出目錄,則會忽略此清單。

另請參閱

openssl(1)openssl-crl(1)openssl-x509(1)

版權所有 2015-2020 The OpenSSL Project Authors。保留所有權利。

在 Apache 授權條款 2.0(「授權條款」)下取得授權。您只能在遵守授權條款的情況下使用此檔案。您可以在原始程式碼散佈中的 LICENSE 檔案中取得副本,或至 https://www.openssl.org/source/license.html 取得副本。