使用 makecert 开发 SSL

Posted

技术标签:

【中文标题】使用 makecert 开发 SSL【英文标题】:Using makecert for Development SSL 【发布时间】:2010-10-04 13:02:44 【问题描述】:

这是我的情况:

我正在尝试创建一个 SSL 证书,该证书将安装在所有开发人员的机器上,以及两个内部服务器(一切都是非生产的)。

我需要做什么来创建可以安装在所有这些地方的证书?

现在我已经有了一些类似的东西,使用 Microsoft Visual Studio 8\SDK\v2.0\Bin 中的 makecert 应用程序:

makecert -r -pe -n "CN=MySite.com Dev" -b 01/01/2000 -e 01/01/2033 -eku 1.3.6.1.5.5.7.3.1 -ss Root -sr localMachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 mycert.cer

但是,我不确定如何将此 .cer 文件放置在其他计算机上,并且当我将其安装在本地计算机 IIS 上时,每次通过 https: 访问页面时,我都会收到安全提示(即使在我安装了证书之后)。以前有人做过吗?

【问题讨论】:

【参考方案1】:

这是我的脚本:

创建证书颁发机构

使用可导出的私钥 (-pe) 创建自签名证书 (-r),使用 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 开关。

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

certutil -user -addstore Root CA.cer

要以编程方式在 IIS 6.0 中安装证书,请查看 this Microsoft KB article。对于 IIS 7.0,我不知道。

【讨论】:

我正在执行这些步骤,并且能够创建 pfx 文件,但是当我尝试将 pfx 文件导入 IIS7 时,它显示“指定的网络密码不正确”。你知道我怎样才能让它导入吗?谢谢 跟进我只是没有输入任何密码并导入它。 @dscoduc 不错的工具,Win7需要masty的参数(-cy权限) 对于 IIS7 这就像转到 IIS MMC -> 服务器证书 -> 右键单击​​ -> 创建自签名证书一样简单。然后将其添加到您的站点绑定中。 这是迄今为止我见过的最完整的答案。绝对是 +1。【参考方案2】:

您应该在创建证书颁发机构时将-cy authority 添加到开关中,否则某些证书存储不会将其视为正确的 CA。

【讨论】:

以上是关于使用 makecert 开发 SSL的主要内容,如果未能解决你的问题,请参考以下文章

使用makecert.exe创建自签名CA证书

如何使用 makecert 创建 WCF 接受的 X509 证书

Windows中没有makecert的自签名证书?

使用 makecert/pvk2pfx 时,ClickOnce 签名者的证书对签名无效

自动化makecert密码

驱动程序签名:如何让 MakeCert 测试证书在 x64 上工作