Ssl
為什麼 /etc/ssl/certs 中有這麼多奇怪的證書文件名以 0 結尾?
我們知道 CA 證書位於
/etc/ssl/certs
debian 中。cd /etc/ssl/certs ls | grep 0$ |wc -l 126
我在這裡粘貼了其中的一部分:
f081611a.0 f0c70a8d.0 f249de83.0 f30dd6ad.0 f3377b1b.0 f387163d.0 f39fc864.0 f51bb24c.0 fc5a8f99.0 fe8a2cd8.0
為什麼 /etc/ssl/certs 中有這麼多奇怪的證書文件名以 0 結尾?
這些值是證書的散列結果(準確地說:今天的散列基於規範形式的主題 (DN) 的 SHA1 散列)以加快它們的查找速度。最後一位數字是元素鍊錶中的索引,以防發生散列衝突,散列到相同的值。
這記錄在
openssl rehash
:rehash掃描目錄併計算指定目錄列表中每個“.pem”、“.crt”、“.cer”或“.crl”文件的雜湊值,並為每個文件創建符號連結,其中****連結的名稱是雜湊值。(如果平台不支持符號連結,則製作一個副本。) 此實用程序很有用,因為許多使用 OpenSSL 的程序需要像這樣設置目錄才能找到證書。
至於最後一位(在發生雜湊衝突之前為 0):
創建的連結採用“HHHHHHHH.D”形式,其中每個 H 是一個
十六進製字元,D 是一個十進制數字。處理目錄時,rehash 將首先刪除所有具有該語法名稱的連結,即使它們被用於其他目的。要跳過刪除步驟,請使用 -n 標誌。CRL 的雜湊看起來很相似,除了字母 r 出現在句點之後,就像這樣:“HHHHHHHH.rD”。
多個對象可能具有相同的雜湊值;它們將通過增加 D 值來指示。通過比較完整的 SHA-1 指紋來發現重複項。如果發現重複,將顯示警告。