Я пытаюсь реализовать генератор сертификатов X.509 с нуля (я знаю о существующих, но мне нужен еще один). Я не могу понять, как вычислить SHA-1 (или любой другой) отпечаток сертификата.
RFC5280 говорит, что вход для функции подписи - это поле tbsCertificate, закодированное DER. К сожалению, хэш, который я вычисляю, отличается от того, который был получен OpenSSL. Здесь приводится пошаговый пример.
- сгенерировать сертификат с использованием инструмента OpenSSL x509 (в двоичной форме DER, а не ASCII PEM)
- вычислить свой SHA-1 хэш с помощью
openssl x509 -fingerprint
- извлеките поле TBS с помощью dd (или что-нибудь еще) и сохраните его в отдельном файле; вычислить свой хэш с помощью утилиты
sha1sum
Теперь хеши, которые я получаю на шагах 2 и 3, различны. Может кто-нибудь, пожалуйста, дайте мне подсказку, что я могу делать неправильно?