如何制作X.509证书?

Ver*_*009 2 wcf wcf-security x509certificate x509 c#-4.0

我正在尝试制作X.509证书.我正在使用makecert.exe来实现这一点.我使用此命令来制作我的X.509证书

 makecert.exe -sr LocalMachine -ss My -a sha1 -n CN=MyServerCert -sky exchange –pe
Run Code Online (Sandbox Code Playgroud)

但我不知道有X.509证书存储.
我需要在我的c#代码中使用这个X.509证书.代码是:

  host.Credentials.ServiceCertificate.Certificate = new X509Certificate2("MyServerCert.p12", "password");
Run Code Online (Sandbox Code Playgroud)

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

kro*_*ijk 8

我总是使用PluralSight的SelfCert工具.你可以在这里下载.相同的页面还提供了用法和代码示例.

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


Lad*_*nka 5

很高兴你找到了makecert命令,但也许你也可以查看你发现证书存储位置的makecert文档,因为它是在命令的参数中定义的:

  • sr说将为LocalMachine商店位置生成证书
  • ss说证书将存储在Personal(My)商店中

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

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

现在,在名为MyServerCert的LocalMachine选择证书的Personal store中,从上下文菜单中选择All Tasks> Export.在导出期间检查您是否要导出私钥但不检查扩展安全性或私钥删除.您还必须选择存储导出证书的路径和访问私钥的密码.

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

certutil.exe -privatekey -p password -exportpfx "MyServerCert" C:\Temp\MyServerCert.pfx 
Run Code Online (Sandbox Code Playgroud)

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