我正在尝试为自己制作一个开发证书链,用于WCF的一些测试。我在这里关注msdn上的文章:How to: Create Temporary Certificates for Use During Development
不幸的是,说明不起作用。私钥不可导出。我甚至用makecert.exe的“-pe”选项重新尝试了它,它仍然不起作用。我在以管理员身份运行时尝试过它并且不起作用。在mmc本身使用“导出”时,它询问私钥的第一个屏幕显示“是/否”选项,并在其下面显示一条消息:“相关的私钥被标记为不可导出。只有证书可以出口。“
有什么建议吗? MSDN上的更新程序可能还是另一个完全?我正在寻找的是与WCF一起用于某些基本测试的证书。这是在Windows 8 Pro上,但我怀疑这很重要。
答案 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 makecert和http://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
是的,该工具也允许您进行一些诊断。