Введение в механизм хеширования хранилищ сертификатов
При проверке цепочек доверия криптографическая библиотека OpenSSL индексирует файлы сертификатов в хранилище не по их произвольным именам, а по 8-символьным хешам субъекта. Утилита c_rehash представляет собой специализированный инструмент автоматизации, сканирующий указанную директорию и создающий необходимые символические ссылки формата хеш.N. Это избавляет системного инженера от ручного расчета контрольных сумм и гарантирует мгновенный поиск доверенных центров авторизации (CA) веб-серверами, почтовыми демонами и защищенными сетевыми сервисами. Ниже рассмотрена практическая работа с этой утилитой от развертывания до верификации результатов.
Подготовка окружения и разбор ключевых параметров c_rehash
Для воспроизведения всех шагов сначала актуализируем индексы репозиториев apt и удостоверимся в установке дистрибутивного пакета openssl.

Чтобы убедиться, что сценарий доступен в системных путях поиска исполняемых файлов, опрашиваем систему через команду which c_rehash.

Инструмент сканирует целевой каталог, извлекает хеш каждого найденного открытого ключа X.509 и связывает его с исходным файлом. Для беглого знакомства с возможностями утилиты вызываем справочную справку с ключом -h.
⚙️ [Ключевые флаги запуска]
-h : отображает сводку по синтаксису и доступным аргументам.-v : включает подробный режим с выводом каждого создаваемого и удаляемого симлинка.-old : принудительно рассчитывает хеши по устаревшему алгоритму OpenSSL (актуально для легаси-клиентов).-n : сохраняет уже существующие в папке указатели без их предварительной очистки.

Создание тестового сертификата и первичная генерация хеш-ссылок
Организуем изолированное рабочее пространство, создав отдельную директорию командой mkdir -p ~/ssl-test.

С помощью подсистемы openssl req сформируем пару из закрытого ключа RSA и самоподписанного сертификата сроком действия на один год без шифрования паролем.

Выполним инспекцию содержимого папки через ls -l ~/ssl-test, чтобы убедиться в корректной записи cert.pem и приватного ключа key.pem.

Теперь запускаем сканирование тестового каталога утилитой c_rehash ~/ssl-test для автоматического расчета хеша и выставления симлинков.

Повторный вызов ls -l ~/ssl-test наглядно демонстрирует появление восьмеричной хеш-ссылки с суффиксом .0, которая прозрачно указывает на оригинальный файл cert.pem.

Работа в подробном режиме (-v) и валидация совпадения хеша
Чтобы оценить поведение утилиты при расширении хранилища, добавим второй независимый сертификат cert2.pem и соответствующий ключ key2.pem.

Запустим повторное индексирование с флагом детализации: c_rehash -v ~/ssl-test.
В терминале отобразится пошаговый отчет: утилита сначала удаляет устаревшие указатели (unlink), а затем повторно привязывает как уже существующий сертификат, так и только что добавленный cert2.pem (link).

Для окончательной проверки правильности работы алгоритма вычислим хеш субъекта напрямую из файла с помощью команды openssl x509 -hash -noout -in ~/ssl-test/cert.pem.
Полученное шестнадцатеричное значение (a61fdd91) посимвольно совпадает с префиксом созданного линка a61fdd91.0, что подтверждает абсолютную корректность индекса.

Анализ системного доверенного хранилища и очистка ресурсов
Стандартное глобальное хранилище доверенных сертификатов в дистрибутивах Ubuntu располагается по пути /etc/ssl/certs. Проверим его метаданные вызовом ls -ld /etc/ssl/certs.
Каталог находится под строгим контролем пользователя root, а внутри него системные пакеты ca-certificates точно так же поддерживают сотни хеш-симлинков через схожие механизмы переиндексации.

После завершения практических тестов полностью удалим временные файлы и экспериментальную директорию с помощью команды rm -rf ~/ssl-test.

Применение утилиты c_rehash кардинально упрощает обслуживание локальных и корпоративных удостоверяющих центров в Linux, автоматизируя поддержание консистентной структуры хеш-указателей для любых криптографических сервисов.