使用makecert为自签名证书添加或创建“使用者替代名称”字段

时间:2011-06-17 08:11:15

标签: certificate x509certificate self-signed makecert

如何使用带有“使用者替代名称”字段的makecert创建证书?

enter image description here

你可以使用-eku选项添加一些字段,例如'Enhanced Key Usage',我尝试了-san选项,但makecert不喜欢它。

这是一个自签名证书,因此任何使用IIS创建要发送给CA的内容的方法都不合适。

3 个答案:

答案 0 :(得分:28)

更简单的方法是使用New-SelfSignedCertificate PowerShell命令行开关,该命令行开关默认包含SAN。在单个命令中,您可以创建证书并将其添加到商店。

New-SelfSignedCertificate -DnsName localhost -CertStoreLocation cert:\LocalMachine\My

请注意,您需要以管理员身份运行PowerShell。

答案 1 :(得分:14)

Makecert似乎不支持SAN,所以我创建了一个带有SAN的证书,用于使用OpenSSL的IIS。查看我的帖子。

http://andyarismendi.blogspot.com/2011/09/creating-certificates-with-sans-using.html

答案 2 :(得分:8)

<强>更新

使用以下makecert方法生成的证书在所有浏览器中都无法可靠地运行,因为它实际上不会生成“使用者替代名称”。

如果您检查证书,您会看到它实际上没有Subject Alternative Name字段,而是在CN字段中指定多个Subject

E.g。

Subject:
CN = blah.foo.corp
CN = blah

而真正的“SAN”证书将具有以下内容:

Subject Alternative Name:
DNS Name=blah.foo.corp
DNS Name=blah

要了解“主题”字段与“通用名称”和“使用者替代名称”字段之间的差异和历史记录,建议您阅读The (soon to be) not-so Common Name

因此,似乎makecert 不能用于生成真正的“SAN”证书,您需要使用其他工具,例如openssl


原始答案:

至少使用Visual Studio 2012附带的makecert版本,只需指定逗号分隔列表-n "CN=domain1, CN=domain2"

即可指定多个主题

E.g。 (来自technet博客Makecert.exe SAN and Wildcard certificate

makecert -r -pe -n "CN=*.fabrikam.com, CN=*.contoso.com" -b 01/01/2010 -e 01/01/2100 -eku 1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2,1.3.6.1.5.5.7.3.3,1.3.6.1.5.5.7.3.4 -ss my -sr localMachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 -len 2048