Windows机器证书文件映射

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows机器证书文件映射相关的知识,希望对你有一定的参考价值。

BLUF

如果您知道Windows机器证书文件名,是否可以在Windows证书库中查看文件内容?

背景

我正在使用Windows 7+ VPN客户端。它不允许您直接选择应该用于连接的证书,并提供非常有限的反馈。最臭名昭着的错误RRAC是13801,大致总结为“我不喜欢使用的证书,但我不会告诉你究竟是什么”。

使用事件查看器查看安全条目,我确实看到有证书请求。就像是:

 ProviderName Microsoft Software Key Storage Provider 
  AlgorithmName UNKNOWN 
  KeyName {#################} 
  KeyType %%2499 
  KeyFilePath C:ProgramDataMicrosoftCryptoRSAMachineKeys<filename>
  Operation %%2458 
  ReturnCode 0x0 

我想知道如何使用上面提到的文件名来查看证书属性(IE:看到我想要的那个被使用)。现在我唯一的方法是通过mmc导入证书,并查看导入时创建的新文件。我不能将这个技巧用于已经在系统上导入的证书。

答案

这里的所有标识符都用于私钥。私钥不知道证书所在的位置,因为该体系结构是证书对象/证书存储区知道私钥对于给定证书的位置。

要查看证书库中的证书与系统上的密钥之间的映射,您可以使用certutil -store,例如:

C:>certutil -store my
my
================ Certificate 0 ================
...
================ Certificate 7 ================
Serial Number: 3451b93c10f9279348a949f729d1ff10
Issuer: CN=localhost
 NotBefore: 1/26/2015 2:19 PM
 NotAfter: 1/25/2020 4:00 PM
Subject: CN=localhost
Signature matches Public Key
Root Certificate: Subject matches Issuer
Template:
Cert Hash(sha1): 15 e3 4c d3 2d a7 54 99 a9 17 8f 17 26 25 63 25 8f 3a 94 28
  Key Container = IIS Express Development Certificate Container
  Unique container name: fad662b360941f26a1193357aab3c12d_1fcb2e07-cec4-4ba1-9c78-58a431e1aefd
  Provider = Microsoft RSA SChannel Cryptographic Provider
Encryption test passed
CertUtil: -store command completed successfully.

匹配的东西是Key Container在这个输出中与事件中的KeyContainerName相同,并且此输出中的Provider在事件中是ProviderName

您还可以转储用户存储(默认为计算机):

C:>certutil -user -store -silent my
my
================ Certificate 0 ================
Serial Number: 0123456789abcdef
Issuer: E=issueremail@example.org, CN=cn.issuer.example.org, OU=ExampleOU, O=ExampleO, L=Locality, S=State, C=Country
 NotBefore: 11/12/2013 6:15 AM
 NotAfter: 12/13/2014 7:16 AM
Subject: E=subjectemail@example.org, CN=cn.subject.example.org, OU=ExampleOU, O=ExampleO, L=Locality, S=State, C=Country
Non-root Certificate
Template:
Cert Hash(sha1): ff 3d 35 54 54 fd ff ea 52 cd 71 6f e7 14 24 75 3f f7 fe cf
  Key Container = {F76693EF-BDC3-4AEC-855A-3A2F65EB9C14}
  Unique container name: 0148994a057f4e05acb6407550cdde40_1fcb2e07-cec4-4ba1-9c78-58a431e1aefd
  Provider = Microsoft Enhanced RSA and AES Cryptographic Provider
Private key is NOT exportable
Encryption test passed

...
================ Certificate 51 ================
Serial Number: 0123456789abcdef
Issuer: E=issueremail@example.org, CN=cn.issuer.example.org, OU=ExampleOU, O=ExampleO, L=Locality, S=State, C=Country
 NotBefore: 11/12/2013 6:15 AM
 NotAfter: 12/13/2014 7:16 AM
Subject: E=subjectemail@example.org, L=Locality, S=State, C=Country
Non-root Certificate
Template:
Cert Hash(sha1): 2a 81 f8 d1 c7 40 13 2f 15 5a 5e 30 41 1a 2b 13 71 93 db 9e
  Key Container = {2572D484-D352-4B32-BB00-236B755B7F81}
  Unique container name: b11d717c1718a3bc6ad1769f2226998e_1fcb2e07-cec4-4ba1-9c78-58a431e1aefd
  Provider = Microsoft Enhanced RSA and AES Cryptographic Provider
Private key is NOT exportable
Encryption test passed

除了-user开关我指定-silent,因为我有一些智能卡支持证书,我不想处理提示卡和PIN。

以上是关于Windows机器证书文件映射的主要内容,如果未能解决你的问题,请参考以下文章

苹果应用 Windows 申请 普通证书 和Push 证书 Hbuilder 个推

win7映射网络驱动器问题

是否可以在远程 Windows 服务器上确定证书私钥的文件名?

如何使用 PHP 和 IIS 7 访问映射网络驱动器中的文件

运行 pip install - 在 Windows 机器上。由于 Web 代理而出现证书错误

如何在 Chrome 信任的本地 Windows 虚拟主机开发机器上创建/安装自签名 SSL 证书? [复制]