我正在尝试制作X.509证书。我正在使用makecert.exe来实现这一点。我使用此命令来制作我的X.509证书
makecert.exe -sr LocalMachine -ss My -a sha1 -n CN=MyServerCert -sky exchange –pe
但我不知道X.509证书正在存放 我需要在我的c#代码中使用这个X.509证书。代码是:
host.Credentials.ServiceCertificate.Certificate = new X509Certificate2("MyServerCert.p12", "password");
但我不知道什么是密码,它会抛出此异常“系统无法找到指定的文件。”
答案 0 :(得分:8)
我总是使用PluralSight的SelfCert工具。您可以下载here。相同的页面也提供了用法和代码示例。
伟大的免费工具,离不开它。
答案 1 :(得分:5)
很高兴您找到了makecert命令,但也许您还要检查makecert documentation您找到了证书的存储位置,因为它是在您的命令的参数中定义的:
LocalMachine
商店位置生成证书Personal
(My
)商店证书存储在证书存储区中,因此请使用MMC.exe查找它:
现在,在名为MyServerCert的LocalMachine选择证书的个人存储中,从上下文菜单中选择所有任务>出口。在导出期间检查您是否要导出私钥但不检查扩展安全性或私钥删除。您还必须选择存储导出证书的路径和访问私钥的密码。
从VS命令提示符处,您还可以运行此命令,该命令也会为您执行导出:
certutil.exe -privatekey -p password -exportpfx "MyServerCert" C:\Temp\MyServerCert.pfx
它应该将带有私钥的证书导出到Temp目录,密码证书将导出password
。