iis - 使用 makecert 开发 SSL

标签 iis ssl makecert

这是我的情况:

我正在尝试创建一个 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: 访问页面时,我都会收到安全提示 (即使在我安装了证书之后)。以前有人这样做过吗?

最佳答案

这是我执行此操作的脚本:

创建证书颁发机构

创建一个自签名证书 (-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

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

创建服务器证书

使用 SHA1 (-a) 进行 key 交换 (-sky exchange),使用可导出私钥 (-pe) 创建服务器证书。 它可以用作 SSL 服务器证书 (-eku 1.3.6.1.5.5.7.3.1)。 颁发证书位于文件 (-ic) 中, key (-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

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

关于iis - 使用 makecert 开发 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/496658/

相关文章:

c# - 将生成的证书添加到商店并更新 IIS 站点绑定(bind)

iis - SameSite cookies IIS

c# - Asp.net mvc Sp​​ecified UserAgent no session Id

c# - 从网站获取 IIS 站点 ID

c++ - 可执行错误 : Can't start program

c# - 创建证书时未处理的加密异常

certificate - 使用makecert向自签名证书添加或创建 'Subject Alternative Name'字段

python - 如何在 Ubuntu Trusty 上安全地使用 pip(带 SSL)?

iphone - 如何在 iOS 上固定证书的公钥

c# - 如何使用 C# 以编程方式将证书安装到本地机器存储中?