Идентификатор ключа субъекта (SKI или SKID) - это свойство (расширение X.509) отдельного сертификата.
Обычно он вычисляется как хэш SHA-1, когда подписывается сертификат, хэшированные данные могут варьироваться, но обычно они содержат по крайней мере битовую строку subjectPublicKey , и это может быть не полное 160-битное значение SHA-1.
Единственное, что (технически) заботится о том, как создается хеш, - это система, выполняющая подписание, или иногда система, создающая запрос, поскольку он может быть добавлен в запрос. Помимо этого, он обрабатывается как непрозрачный отпечаток или уникальный идентификатор - его значение нужно сравнивать только для идентификации конкретного сертификата или его эмитента (чтобы помочь и оптимизировать проверку пути), его не нужно пересчитывать.
Если вы хотите правильно вычислить хеш SHA-256, то вам нужно будет выяснить, какие именно поля используется в вашей системе для вычисления хеша, и использовать их в качестве входных данных для SHA-256. См. RFC 5280, особенно § 4.2.1.1 и § 4.2.1.2. Подписанные данные, вероятно, представляют собой просто subjectPublicKey или subjectPublicKeyInfo в двоичном формате DER, что, как представляется, является последним для подписанного сертификата OpenSSL.
В этом (просроченном) проекте RFC предлагается использовать хэши SHA-2 для идентификаторов ключей субъекта:http://tools.ietf.org/html/draft-turner-additional-methods-4kis-08
В баге OpenSSL # 2599 есть запрос на добавление функции и патч для этого.