Certificate 如果未指定-sv,makecert在哪里存储私钥?

Certificate 如果未指定-sv,makecert在哪里存储私钥?,certificate,Certificate,假设我运行此命令: makecert testcert.cer 是否创建了私钥?如果是这样,即使我没有告诉makecert在任何证书存储中安装此证书,它在系统中自动存储在哪里?看起来私钥存储在文件本身中。从it的文档中可以看出 小心 您应该使用证书存储来安全地存储您的证书。此工具使用的.snk文件以不受保护的方式存储私钥。创建或导入.snk文件时,应注意在使用过程中对其进行保护,并在完成后将其删除 未创建私钥,因为当我在.NET中加载证书时,X509Certificate2的私钥被设置为fal

假设我运行此命令:

makecert testcert.cer

是否创建了私钥?如果是这样,即使我没有告诉makecert在任何证书存储中安装此证书,它在系统中自动存储在哪里?

看起来私钥存储在文件本身中。从it的文档中可以看出

小心

您应该使用证书存储来安全地存储您的证书。此工具使用的.snk文件以不受保护的方式存储私钥。创建或导入.snk文件时,应注意在使用过程中对其进行保护,并在完成后将其删除

未创建私钥,因为当我在.NET中加载证书时,X509Certificate2的私钥被设置为false。

运行命令的方式不会创建任何私钥。 要使用私钥生成证书,必须使用选项-pe。 但这并不足够。仅当证书目标是存储时,才会创建私钥。因此,您必须像这样使用命令:

makecert-pe-ss My testcert.cer


“我的”对应于“个人”商店。

是的,这是真的。另外请注意,makecert.exe并没有告诉您它不会将私钥嵌入到证书中。它只是在没有私钥的磁盘上创建它。因此,您可以使用
-pe-ss My
选项在存储器中创建,然后将其导出到磁盘。