2017-07-19 46 views
-3

我想要一个可以在服务器上运行的工具,该工具将从已安装的SSL证书中提取并返回指定的属性。我特别感兴趣的是“发行人”和“指纹”属性。我知道我可以简单地打开证书的属性对话框并复制这些对话框,然后将它们粘贴到我的应用程序中,但是为了避免其他人在多个网站上执行此操作时可能出现的易于出错的手动过程,我想要一个工具或脚本我可以调用它只会从指定的证书返回指定属性的值。我很好,如果我需要分别打电话给每个所需的财产。交钥匙越多越好。有什么建议吗?如何提取SSL证书属性

+3

这是可行的。给它一个去,并问你是否有一个_specific_问题。将您的问题标题以添加到Google的“PowerShell”字面复制;你不应该比第一对结果更进一步。 – gms0ulman

回答

0

你想要做这样的事情:

Get-ChildItem Cert:\LocalMachine\Root\ | Select Issuer,Thumbprint 

这里是属性的列表,你可以很容易地从System.Security.Cryptography.X509Certificates.X509Certificate2对象(普通证书)获得。

Name     MemberType  Definition                                                     
----     ----------  ----------                                                     
Archived    Property  bool Archived {get;set;}                                                  
Extensions   Property  System.Security.Cryptography.X509Certificates.X509ExtensionCollection Extensions {get;}                                  
FriendlyName   Property  string FriendlyName {get;set;}                                                
Handle    Property  System.IntPtr Handle {get;}                                                 
HasPrivateKey  Property  bool HasPrivateKey {get;}                                                  
Issuer    Property  string Issuer {get;}                                                   
IssuerName   Property  System.Security.Cryptography.X509Certificates.X500DistinguishedName IssuerName {get;}                                   
NotAfter    Property  datetime NotAfter {get;}                                                  
NotBefore   Property  datetime NotBefore {get;}                                                  
PrivateKey   Property  System.Security.Cryptography.AsymmetricAlgorithm PrivateKey {get;set;}                                      
PublicKey   Property  System.Security.Cryptography.X509Certificates.PublicKey PublicKey {get;}                                      
RawData    Property  byte[] RawData {get;}                                                   
SerialNumber   Property  string SerialNumber {get;}                                                 
SignatureAlgorithm Property  System.Security.Cryptography.Oid SignatureAlgorithm {get;}                                         
Subject    Property  string Subject {get;}                                                   
SubjectName   Property  System.Security.Cryptography.X509Certificates.X500DistinguishedName SubjectName {get;}                                  
Thumbprint   Property  string Thumbprint {get;}                                                  
Version    Property  int Version {get;}                                                   
DnsNameList   ScriptProperty System.Object DnsNameList {get=,(new-object Microsoft.Powershell.Commands.DnsNameProperty -argumentlist $this).DnsNameList;;}                         
EnhancedKeyUsageList ScriptProperty System.Object EnhancedKeyUsageList {get=,(new-object Microsoft.Powershell.Commands.EnhancedKeyUsageProperty -argumentlist $this).EnhancedKeyUsageList;;}                  
SendAsTrustedIssuer ScriptProperty System.Object SendAsTrustedIssuer {get=[Microsoft.Powershell.Commands.SendAsTrustedIssuerProperty]::ReadSendAsTrustedIssuerProperty($this);set=$sendAsTrustedIssuer = $args[0]...