证书标记为不可导出

时间:2013-04-23 19:31:51

标签: wcf certificate

我正在尝试为自己制作一个开发证书链,用于WCF的一些测试。我在这里关注msdn上的文章:How to: Create Temporary Certificates for Use During Development

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

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

4 个答案:

答案 0 :(得分:3)

SO answer。几个月前我用它来做一个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 。如果您在域中,则可以使用Windows组策略在全局范围内执行此操作。如果没有,您可以使用 certmgr.msc MMC管理单元或 certutil 命令行实用程序:

certutil -user -addstore Root CA.cer

答案 1 :(得分:2)

您始终可以使用openssl创建self-signed certificate,然后只需将证书导入Windows证书存储区即可。从命令行可以很容易地做到:

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

第一行生成私钥,第二行生成实际的自签名证书。那是Win32 installer available

答案 2 :(得分:1)

对我来说,仍然要找到选项-pe无效的原因。

Make exportable private key with makecerthttp://www.digitallycreated.net/Blog/38/using-makecert-to-create-certificates-for-development中给出的答案可能对您有帮助。

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

答案 3 :(得分:0)

尝试 SSL诊断工具。

您应该能够为IIS创建开发证书而不会头疼:

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

是的,该工具也允许您进行一些诊断。