Как определить, две пары сертификатов выпущены разными ЦС в Голанге? - PullRequest
0 голосов
/ 26 декабря 2018

У меня есть http-сервер GOlang, который использует самозаверяющий сертификат tls.У меня есть одна такая пара сертификатов и ключей.Теперь, скажем, у меня есть аналогичный сертификат и пара ключей.Я хотел бы определить, были ли эти две пары выпущены двумя разными CA?У меня нет доступа к сертификатам CA в этом случае.Я могу предположить, что длина цепочки = 1.

Я пытался проверить структуру Certificate.Issuer.Но я не вижу никакой разницы там.Как я могу это сделать?

Спасибо.

1 Ответ

0 голосов
/ 26 декабря 2018

Поля SubjectKeyId будут различаться для двух разных сертификатов.

Это поле является хэшем открытого ключа:

Ключ keyIdentifier равенсостоит из 160-битного SHA-1 хэша значения BIT STRING subjectPublicKey (исключая тег, длину и количество неиспользуемых битов).

https://tools.ietf.org/html/rfc3280#section-4.2.1.2

Для сертификатов, которые не являются самозаверяющими, следуют поля AuthorityKeyId вплоть до корневых сертификатов и затем проверяют цепочки сертификатов на наличие общих членов, снова используя ключи субъекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...