Comment détecter si un cert particulier a été installé sur une boîte Windows?

Un pré-requirejs pour un deployment d'application particulier est que nous avons besoin d'un certificate PKI particulier installé dans le magasin CERt des éditeurs Windows Trusted Publishers avant d'installer.

Existe-t-il un moyen de détecter si un cert particulier a déjà été installé? Idéalement, utilisez une command one-liner ou un script court (qui pourrait être utilisé pour la détection pré-réq ou comme vérification de dépendance dans SCCM 2012)?

Il semble y avoir beaucoup de commands et de scripts là-bas pour la list de tous les certs installés, ou tous les certs installés expirent bientôt, mais rien que je peux voir pour identifier si un cert particulier est installé.

One Solution collect form web for “Comment détecter si un cert particulier a été installé sur une boîte Windows?”

Ceci est possible avec un PowerShell one-liner, vous avez juste besoin d'un moyen facile d'identifier ce cert (j'utilise le ThumbPrint du cert).

Si vous avez déjà une machine connue, vous savez que le cert est installé (le moyen le plus simple de vérifier de façon interactive est en utilisant simplement certmgr.msc ), vous pouvez utiliser cette machine pour find l'empreinte digitale de cert.

La command PowerShell suivante répertorie tous les certs installés dans le magasin Trusted Publisher dans le context local de la machine:

 Get-ChildItem -Path Cert:\LocalMachine\TrustedPublisher 

De toute évidence, le path ci-dessus peut être modifié, pour répertorier d'autres magasins de cert, ou vous pouvez afficher (une longue list de) tous les certs installés localement en utilisant:

 Get-ChildItem -Path Cert: -Recurse 

La première command devrait vous donner quelque chose comme ceci:

 PS C:\> Get-ChildItem -Path Cert:\LocalMachine\TrustedPublisher Directory: Microsoft.PowerShell.Security\Certificate::LocalMachine\TrustedPublisher Thumbprint Subject ---------- ------- 83EDC96EC3D55125EFFC77BC815F9133E268D5EB CN="User, Test", OU=Testing Resources... 4DFF713712084D43DE6879C689F9A143C4A793BF CN=Server One Self-signed 

Une fois que vous avez trouvé l'empreinte digitale du cert que vous searchz, vous pouvez l'utiliser pour filterr les résultats comme ceci:

 Get-ChildItem -Path Cert:\LocalMachine\TrustedPublisher | Where-Object {$_.Thumbprint -eq "83EDC96EC3D55125EFFC77BC815F9133E268D5EB"} 

Cela devrait renvoyer les détails du cert s'il est installé, et rien si ce n'est pas le cas. Parmi d'autres utilisations, cette Powershell one-liner peut être utilisée comme méthode de détection de script personnalisée dans une application SCCM 2012.

(Ressources utilisées: utilisez PowerShell pour find des certificates sur lesquels expirer | PowerTip: utilisez PowerShell pour découvrir les empreintes de journaux de certificates | Utilisation de la Cmdlet Where-Object )

  • Comment émettre des certificates de machine sur des appareils Android essayant de se connecter à L2TP VPN (L2TP / IPsec avec certificate)?
  • EAP-TLS: est-ce possible d'écouter lorsque vous partagez un certificate client?
  • Extraire automatiquement les informations du certificate
  • Configurer IIS pour exiger un certificate client et utiliser une authentification anonyme
  • Comment lier le site Web et sa version SSL en utilisant le même port
  • Puis-je créer un certificate SSL en string reconnu par les browsers?
  • renouveler un certificate SSL sur IIS6?
  • Comment exporter un certificate d'user chrome
  • Ajout d'un cert auto-signé dans une list de certificates approuvés avec powershell sur Windows 7
  • Sécurité de connection au pare-feu Windows avec certificate (2)
  • Configuration MySql SSL - Section Client
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.