如何制作X.509证书?

时间:2011-09-25 18:31:25

标签: wcf c#-4.0 wcf-security x509certificate x509

我正在尝试制作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");

但我不知道什么是密码,它会抛出此异常“系统无法找到指定的文件。”

2 个答案:

答案 0 :(得分:8)

我总是使用PluralSight的SelfCert工具。您可以下载here。相同的页面也提供了用法和代码示例。

伟大的免费工具,离不开它。

答案 1 :(得分:5)

很高兴您找到了makecert命令,但也许您还要检查makecert documentation您找到了证书的存储位置,因为它是在您的命令的参数中定义的:

  • sr表示将为LocalMachine商店位置生成证书
  • ss表示证书将存储在PersonalMy)商店

证书存储在证书存储区中,因此请使用MMC.exe查找它:

  • 打开“开始”菜单
  • 在搜索/运行中键入mmc并运行它
  • 在“文件”菜单中,选择“添加/删除管理单元”
  • 选择“本地计算机范围内的证书管理单元”并确认选择

现在,在名为MyServerCert的LocalMachine选择证书的个人存储中,从上下文菜单中选择所有任务>出口。在导出期间检查您是否要导出私钥但不检查扩展安全性或私钥删除。您还必须选择存储导出证书的路径和访问私钥的密码。

从VS命令提示符处,您还可以运行此命令,该命令也会为您执行导出:

certutil.exe -privatekey -p password -exportpfx "MyServerCert" C:\Temp\MyServerCert.pfx 

它应该将带有私钥的证书导出到Temp目录,密码证书将导出password