5

我正在尝试为自己制作一个开发证书链,以便对 WCF 进行一些测试。我在这里关注 msdn 上的说明:如何:创建临时证书以供在开发期间使用

不幸的是,这些说明不起作用。私钥不可导出。我什至用 makecert.exe 的“-pe”选项重新尝试了它,但它仍然不起作用。我在以管理员身份运行时尝试过它,但它不起作用。在 mmc 本身中,当使用“导出”时,询问私钥的第一个屏幕将“是/否”选项灰显,并在其下方显示一条消息:“关联的私钥被标记为不可导出。只有证书可以导出。”

有什么建议吗?可能是来自 MSDN 的更新程序,或者完全是另一个程序?我正在寻找的只是一个与 WCF 一起用于一些基本测试的证书。这是在 Windows 8 Pro 上,尽管我怀疑这很重要。

4

4 回答 4

3

看到这个答案。几个月前,我将它用于 WCF 项目。

创建证书颁发机构

创建一个自签名证书 (-r),使用可导出的私钥 (-pe),使用 SHA1 (-r) 进行签名(-sky 签名)。私钥被写入文件 (-sv)。

makecert -r -pe -n "CN=My Root Authority" -ss CA -sr CurrentUser ^
         -a sha1 -sky signature -cy authority -sv CA.pvk CA.cer

(^= 允许批处理命令行换行)

创建服务器证书

使用可导出的私钥 (-pe) 创建服务器证书,使用 SHA1 (-a) 进行密钥交换 (-sky exchange)。它可以用作 SSL 服务器证书(-eku 1.3.6.1.5.5.7.3.1)。颁发证书在文件 (-ic) 中,密钥 (-iv) 也是如此。使用特定的加密提供程序(-sp、-sy)。

makecert -pe -n "CN=fqdn.of.server" -a sha1 -sky Exchange ^
         -eku 1.3.6.1.5.5.7.3.1 -ic CA.cer -iv CA.pvk ^
         -sp "Microsoft RSA SChannel Cryptographic Provider" ^
         -sy 12 -sv server.pvk server.cer

pvk2pfx -pvk server.pvk -spc server.cer -pfx server.pfx

然后,您可以在服务器应用程序中使用 .PFX 文件(或将其安装在 IIS 中)。请注意,默认情况下,pvk2pfx不对输出 PFX 文件应用密码。您需要为此使用-po开关。

要使您的所有客户端计算机都信任它,请将CA.cer安装在其证书存储区(在 Trusted Root Authorities 存储区中)。如果您在域中,则可以使用 Windows 组策略在全局范围内执行此操作。如果没有,您可以使用certmgr.msc MMC 管理单元或certutil命令行实用程序:

certutil -user -addstore Root CA.cer
于 2013-05-02T13:29:09.910 回答
2

您始终可以使用openssl创建自签名证书,然后只需将证书导入 Windows 证书存储。从命令行很容易做到:

openssl genrsa -des3 -out privkey.pem 2048
openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095

第一行生成私钥,第二行生成实际的自签名证书。有可用的Win32 安装程序

于 2013-04-27T03:01:23.670 回答
1

对我来说,仍然是找出选项 -pe 不起作用的原因。

使用 makecert和http://www.digitallycreated.net/Blog/38/using-makecert-to-create-certificates-for-development在Make exportable private key中给出的答案可能会对您有所帮助。

建议输出私钥,然后使用证书和私钥生成 PFX 文件,然后导入此 PFX 文件。

于 2013-05-01T07:05:16.027 回答
0

试试SSL 诊断工具。

您应该能够轻松地为 IIS 创建开发证书:

http://www.softpedia.com/get/Internet/Servers/Server-Tools/SSL-Diagnostics.shtml

是的,该工具也可以让您进行一些诊断。

于 2013-05-03T18:31:29.280 回答