【问题标题】:How to create certificate authority certificate with makecert?如何使用 makecert 创建证书颁发机构证书?
【发布时间】:2012-10-31 05:15:10
【问题描述】:

我正在尝试创建一个使用 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

现在,我想用 firefox 来调试网站。为此,我需要将授权根证书 (root.cer) 导入到受信任的证书列表中。

但是,当我尝试这样做时,我收到以下错误消息:

这不是证书颁发机构证书,因此无法导入证书颁发机构列表。

我对fiddler的授权证书做了类似的事情,一切正常,这意味着我创建授权证书的过程存在问题。

如何正确创建证书颁发机构证书?

【问题讨论】:

    标签: c# https certificate makecert


    【解决方案1】:

    也许您可以尝试在创建根证书时添加 -cy authority 参数,如下所示:

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

    因此,您声明您正在创建一个授权证书,并且应该可以完成这项工作.. 或者至少让您走上正轨 =)

    我尝试使用此命令行创建根证书并将其导入 Firefox:我可以确认,如果您不添加“-cy”参数,Firefox 将不会认为这是一个有效的根证书。

    希望有帮助!

    【讨论】:

    • Arsen 的问题是两个月前的问题,但我认为无论如何回复它会很有用 =)
    • 只是一个简短的旁注,说明 windows 的 makecert.exe 实用程序无法设置 SubjectAltName 字段,并且由于浏览器开始检查此字段以进行 HTTPS 名称验证,当您想要使用 makecert 生成 SSL/TLS 证书。不过,还有诸如 OpenSSL 或 powershell 之类的替代方案。有关详细信息,请参阅textslashplain.com/2017/03/10/…
    【解决方案2】:

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

    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
    

    【讨论】:

      最近更新 更多