这是我的情况:
我正在尝试创建一个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:访问页面时,都会得到安全提示(即使在我之后)已经安装了证书.有没有人这样做过?
这是我执行此操作的脚本:
使用SHA1(-r)创建自签名证书(-r),使用可导出的私钥(-pe)进行签名(-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
若要以编程方式在IIS 6.0中安装证书,请查看此Microsoft知识库文章.对于IIS 7.0,我不知道.
您应该-cy authority
在创建证书颁发机构时添加到交换机,否则某些证书库将不会将其视为正确的CA.