.net 签发证书

dgtucam1  于 2023-02-01  发布在  .NET
关注(0)|答案(1)|浏览(160)

我正在开发一个工具(ASP.NET页面,生成一个带有私钥的文件,稍后在其他应用程序上验证。
我正在使用makecert创建证书:

makecert -sky "privatekey" -sk "MyCompany"-n "CN=MyCompany" -ss -pe CertFile.cert

生成的证书在我的开发机器上,然后我运行这段代码,可以毫无问题地找到它:

X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
X509Certificate2Collection certs;

store.Open(OpenFlags.ReadOnly);

X509Certificate2Collection certs = store.Certificates.Find(X509FindType.FindBySubjectName, "MyCompany", false);

certs变量不包含证书(在测试环境中)
我在测试服务器(Win 2003)上安装了证书,使用双击并安装证书,使用MMC并导入证书,从我的机器导出证书,然后导入测试服务器。
我是不是漏掉了什么步骤?
更新:
我认为这可能是问题所在。aspnet用户没有访问证书的权限,而且证书也没有安装在计算机上,只是针对本地用户。
我正在寻找这个链接:http://geekswithblogs.net/lorint/archive/2005/12/30/64516.aspx
谢谢

w8ntj3qf

w8ntj3qf1#

命令行稍有错误...您需要在“-ss”参数后指定存储“my”:

makecert -sky "privatekey" -sk "MyCompany" -n "CN=MyCompany" -ss "my" -pe CertFile.cert

更改之后,我就可以使用MMC证书管理单元找到证书了。

相关问题