Я пытаюсь просмотреть сертификаты Windows на моем компьютере, но пользовательский интерфейс для certmgr и MMC ужасен. В частности, мне нужен быстрый способ просмотра и сравнения отпечатков пальцев и понятных имен. Кто-нибудь знает лучший инструмент для этого?
Не обязательно должен быть графический интерфейс, меня устраивают консольные команды, если они работают лучше.
Я создал сценарий PowerShell, который упрощает поиск сертификатов по отпечатку пальца, именам субъектов или серийным номерам. Вы можете найти его здесь:
По умолчанию он будет искать в хранилищах сертификатов «CurrentUser» и «LocalMachine», а также без учета регистра на отпечатке пальца, именах субъектов и серийный номер. Вы также можете добавить -PrivateKey, чтобы перечислить только сертификаты с закрытым ключом, и -expiration, чтобы перечислить сертификаты по дате истечения срока. За исключением случая использования флага -expiration, он вернет список реальных объектов .NET X509Certificate, с которыми вы можете работать.
Примеры использования:
get-cert a909
get-cert contoso -privateKey
он также добавляет два псевдонима: lscert, dircert
Вы можете использовать сценарий VBS, например:
Dim store
Set store = CreateObject("CAPICOM.Store")
WScript.Echo "Dumping local Root CAs:"
store.Open , "Root", 0 ' or "My" or "CA"
For Each cert In store.CERTIFICATES
WScript.Echo cert.SubjectName
'WScript.Echo cert.SerialNumber
WScript.Echo cert.Thumbprint
WScript.Echo "---------------------------------------"
Next
WScript.Echo "============================================================================="
WScript.Echo "Dumping Personal CAs:"
store.Open , "CA", 0
For Each cert In store.CERTIFICATES
WScript.Echo cert.SubjectName
'WScript.Echo cert.SerialNumber
WScript.Echo cert.Thumbprint
WScript.Echo "---------------------------------------"
Next
WScript.Echo "============================================================================="
WScript.Echo "Dumping Personal certificates:"
store.Open , "My", 0
For Each cert In store.CERTIFICATES
WScript.Echo cert.SubjectName
'WScript.Echo cert.SerialNumber
WScript.Echo cert.Thumbprint
WScript.Echo "---------------------------------------"
Next
Скопируйте код в файл с именем dumpcerts.vbs и выполните
cscript dumpcerts.vbs
Вы можете открыть консоль Powershell и использовать команду dir в поставщике Cert: для отображения нужной информации. Например, в приведенных ниже командах будут перечислены отпечатки пальцев и темы (понятные имена) для сертификатов текущего пользователя и сертификатов компьютеров соответственно:
dir Cert:\CurrentUser\My
ls Cert:\LocalMachine\My\
Вы можете выполнить команду ниже, чтобы получить дополнительную информацию о том, как работать с сертификатами с помощью поставщика сертификатов в Powershell.
help certificate
Или вы можете прочитать больше в Интернете здесь