看到这个答案。几个月前,我将它用于 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