如何使用makecert创建证书颁发机构证书?

13

我正在尝试创建一个使用自签名证书的SSL网站。

以下是我的操作步骤:

创建授权证书:

makecert -n "CN=root signing authority" -r -sv root.pvk root.cer
创建目标证书
makecert -r -pe -n "CN=localhost" -b 01/01/2012 -e 01/01/2020 -sky exchange localhost.cer -sv localhost.pvk

签署创建的证书

makecert -ic root.cer -iv root.pvk -n "CN=localhost" -sv localhost.pvk -pe -sky exchange localhost.cer
创建一个带有私钥的证书。
pvk2pfx.exe -pvk localhost.pvk -spc localhost.cer -pfx localhost.pfx

现在,我想使用火狐浏览器来调试网站。为了做到这一点,我需要将授权根证书(root.cer)导入到受信任的证书列表中。

然而,当我试图这样做时,我得到以下错误消息:

这不是证书授权机构证书,因此无法将其导入证书授权机构列表中。

我曾经用过 Fiddler 的授权证书做过类似的事情,一切都很顺利,这意味着我的授权证书创建过程存在问题。

如何正确创建证书授权机构证书?

2个回答

13

也许您可以尝试在根证书创建时添加-cy authority参数,像这样:

makecert -n "CN=root signing authority" -cy authority -r -sv root.pvk root.cer

因此,你声明你正在创建一个授权证书,这应该可以解决问题...或者至少将你带上正确的轨道 =)

我尝试使用这个命令行创建根证书并将其导入到Firefox中:如果你不添加"-cy"参数,我可以确认Firefox不会将其视为有效的根证书。

希望这有所帮助!


1
Arsen的问题已经两个月了,但我认为回复它仍然有用 =) - Luke
这里只是简短地提一下,Windows 的 makecert.exe 实用程序无法设置 SubjectAltName 字段,并且由于浏览器开始检查此字段以进行 HTTPS 名称验证,因此当您想使用 makecert 生成 SSL/TLS 证书时,可能会遇到问题。不过,还有一些替代方案,比如 OpenSSL 或 PowerShell。详细信息请参见 https://textslashplain.com/2017/03/10/chrome-deprecates-subject-cn-matching/。 - Luke

0

两个最好和简单的帮助页面:

https://blogs.msdn.microsoft.com/benjaminperkins/2014/05/05/make-your-own-ssl-certificate-for-testing-and-learning/

https://blog.jayway.com/2014/09/03/creating-self-signed-certificates-with-makecert-exe-for-development/

一些例子:

certmgr.exe -add -all -c "benperkmeCA.cer" -s -r localMachine Root

makecert -pe -iv benperkmeCA.pvk -n "CN=benjamin-perkins.me" -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localmachine -sky exchange -ic BenperkmeCA.cer IIS-ServerCert-Benperk.cer


makecert -pe -iv benperkmeCA.pvk -n "CN=benjamin-perkins.me" -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localmachine -sky exchange -ic BenperkmeCA.cer IIS-ServerCert-Benperk.cer

makecert -pe -iv benperkmeCA.pvk -n "CN=benjamin-perkins.me" -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localmachine -sky exchange -ic BenperkmeCA.cer IIS-ServerCert-Benperk.cer

makecert -pe -iv benperkmeCA.pvk -n "CN=benjamin-perkins.me" -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localmachine -sky exchange -ic BenperkmeCA.cer IIS-ServerCert-Benperk.cer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接