Как получить список сертификатов установленных на машине?

29 апрель 2021, Четверг
6 291
0
0 0
При работе с сертификатами: установке, удалениии, обновлении важно знать его параметры, при этом основным идентификатором сертификата является его отпечаток thumbprint. Поэтому всегда важно иметь простой и быстрый способ его получения. Классическим способом получения информации о сертификатах в Windows всегда был способ, заключающийся в запуске MMC, добавление в него оснастки управления сертификатами Certificates, поиск нужного сертификата. Или вводить в командной строке имена оснасток: 
  • certlm.msc - Просмотр сертификатов для локального компьютера
  • certmgr.msc - Просмотр сертификатов для текущего пользователя
При этом, в оснастках значение thumbprint  отображается с пробелами и его вручную необходимо корректировать, для дальнейшего использования.

Как узнать thumbprint локальных сертификатов?

Один из самых быстрых способов получить список всех сертификатов в хранилище, это использование команды PowerShell. Например, чтобы получить список всех сертификатов хранящихся:
1. в персональном хранилище локальной машины:
Get-ChildItem -path "cert:\LocalMachine\My"
2. в персональном хранилище текущего пользователя:
Get-ChildItem -path "cert:\CurrentUser\My"
Результат выолнения данной команды будет иметь следующий вид:
Get-ChildItem -path "cert:\LocalMachine\My"При необходимости, можно дополнить результат команды другими полями, кроме ранее показанных Subject и Thumbprint,можно также вывести поля: FriendlyNameNotBeforeNotAfter.
Например, так:
Get-ChildItem -Path Cert:LocalMachine\MY | ft FriendlyName, Thumbprint, Subject, NotBefore, NotAfter
Если у сертификата не задано значение FriendlyName, то это можно сделать вручную, информацию о том как это сделать, можно найти в статье: Добавить FriendlyName в свойства существующего сертификата. 

В каком хранилище находится сертификат?

В Windows существует три разных типа хранилищ сертификатов, доступные с помощью консоли управления (MMC):
  • Computer Account -хранилище сертификатов данного компьютера, при этом оно является общим для всех пользователей или служб
  • My User Account - хранилище сертификатов текущего пользователя на данном компьютере
  • Service Account - хранилище сертификатов конкретного сервиса локального компьютера.
В каждом из этих хранилищ есть определенный набор папок, он может быть разный, в зависимости от версии операционной системы и установленного программного опеспечения. Пример:
Найти в какой же папке может находиться искомый сертификат, может быть затруднительно, хотя и можно воспользоваться поиском:
Однако, есть возможность использовать для этой цели PowerShell и командлет Get-ChildItem. Он позволяет перемещаться по структуре папок хранилища сертификатов, как по обычному дереву каталогов локального жесткого диска. Для этого в PowerShell необходимо выполнить команду: 
cd cert:
Get-ChildItem localmachine\my

Можно очередной раз убедиться, что использование PowerShell позволяет сократить время поиска нужной информации, и является отличной базой для автоматизации и мониторинга.
Комментарии:
Прокомментировать
При использовании материалов ссылка на сайт UserMan.ru обязательна.
Политика конфиденциальности
Пользовательское соглашение
UserMan.ru © 2017-2024
Соцсети: VK