9
votes

Existe-t-il une utilitaire de ligne de commande pour extraire l'empreinte de certificat?

J'ai créé un certificat de machine. Il apparaît dans les certificats (ordinateur local) \ Certificats Personal \ Certificats Dossier de référentiel de certificats. Maintenant, je souhaite extraire son empreinte avec une utilitaire de ligne de commande.

Malheureusement, la chose la plus proche que je puisse trouver est dans Cet article .

Je dois pouvoir effectuer cette procédure sur n'importe quel système d'exploitation Windows commençant par XP.

merci.


2 commentaires

Le script de l'article fait ce que vous voulez. Mettez-le dans un fichier VBS et exécutez-le.


Juste, je l'ai fait. Mais cela dépend de capicom.dll, qui doit être enregistré. Je me demandais s'il y a une utilité utilisant directement API Crypt, pas de dépendances.


6 Réponses :


9
votes

vieux, mais peut-être que cela aidera quelqu'un. Mettez ce qui suit dans un script PowerShell (.ps1) et exécutez-le. Il imprimera le pouce à l'écran. Regardez le mot envelopper dans ma pâte. XXX


1 commentaires

Ce n'est pas une empreinte de pluie, c'est cn



2
votes

Dans mon cas, je ne pouvais pas utiliser PowerShell, donc j'ai écrit ce script pour fonctionner avec cscript.exe qui vous permettra d'utiliser une expression régulière.

If WScript.Arguments.Count() = 0 Then
    WScript.Echo "Domain name to search for must be specified as first parameter."
    WScript.Quit 1
End If
domain = WScript.Arguments.Item(0)

Set objShell = WScript.CreateObject ("WScript.shell")

' Get all certificate information in store.
Set objCert = objShell.Exec("certutil -store my")
certOutput = ""
Do While objCert.Status = 0
  WScript.Sleep 10 
  Do While Not objCert.StdOut.AtEndOfStream 
     certOutput = certOutput & objCert.StdOut.ReadLine & vbNewLine
  Loop
Loop 

' Capture thumb for specified certificate using Regex.
Set thumbRegex = New RegExp
thumbRegex.Pattern = "Subject:\s+CN=" & domain & "\s*\n.*\n.*\nCert\sHash\(sha1\):\s+(.*)"
thumbRegex.IgnoreCase = True
thumbRegex.Global = False

' Verify match and trim out white space.
Set match = thumbRegex.Execute(certOutput)
result = ""
If match.Count > 0 Then
    result = match.Item(0).Submatches(0)
    result = Replace(result, " ", "")
    WScript.Echo result
Else
    WScript.Echo "The certificate for """ & domain & """ was not found."
    WScript.Quit 2
End If


0 commentaires

3
votes

Obtenez empreinte Thumb directement à partir du fichier .cer xxx


0 commentaires

6
votes

Direct à partir de la ligne de commande pour un fichier .cer qui n'est pas installé et supprime les espaces incorporés (peut probablement être amélioré): XXX


0 commentaires

0
votes

Voici un simple script Python pour le faire:

def getThumbPrint(cert, passwd):
    val = ""
    info = subprocess.Popen(["certutil", "-p", passwd, cert], shell=False, stdout=subprocess.PIPE)
    for i in info.communicate()[0].split('\n'):
        if i.startswith("Cert Hash(sha1):"):
            val = i.split(':')[1].strip()

    # There may be more than 1, we want the last one.
    return val


0 commentaires

1
votes

PowerShell Get-Childitem Certem: \ localmachine \ mon


0 commentaires