如何使用命令提示符创建自签名证书?

5
有没有办法在Windows 2012 R2中使用命令提示符创建自签名证书?我查看了很多文档,每个地方都有使用Windows PowerShell的教程,但没有使用命令提示符的教程。我没有安装makecert实用程序,是否有其他命令或实用程序可用?我看到了一个selfssl实用程序,但不确定它是否适用于Windows 2012 RE服务器。

没有内置工具,因为微软和其他供应商广泛地从cmd转向PowerShell。那么为什么你不能使用PowerShell?有任何阻止的原因吗? - Crypt32
没有特别的原因,只是想探索其他选项。我安装了Windows SDK,其中提供了makecert.exe,使用它可以创建自签名证书。但是,有人能告诉我使用makecert创建所需的最小参数是什么,以及一旦完成并显示成功,我在系统中应该在哪里查找我的证书? - Rahul
3个回答

3

请尝试使用certreq工具。数据以inf文件的形式给出。前面提到的链接包含有关文件结构的信息。链接包含SSL证书示例inf文件(可能更有帮助)。

然后运行

certreq -new your_inf_file.inf generated_req.req

作为一个副作用,它将在你在inf文件中指定的存储中生成一个自签名证书的证书请求。只需将证书移动到我的存储,并且(因为它是自签名的)也要移动到受信任的根证书颁发机构
你也可以使用xca。它是建立在openssl上的一个不错的实用程序,可让您创建任何证书(自签名或任何CA链),并且易于使用。

你的解决方案是不正确的,因为它不是生成自签名证书的正确方式。我已经添加了正确的链接到AskDS博客,该博客描述了支持的证书生成方式。 - Crypt32
@CryptoGuy,感谢您发布更好的链接,介绍如何使用certreq生成自签名证书。顺便问一下,生成自签名证书的“正确”方法是什么? :) - pepo
“right” 是 Microsoft 支持的一种方式。在 certreq 的情况下,“right” 方式是 AskDS 博客提供的方式。New-SelfSignedCertificate PS cmdlet 是另一种“right”方式。或者,您可以使用 Microsoft 支持的 CertEnroll COM 接口。 - Crypt32

2
我建议您不要使用已被弃用的 makecert 工具。相反,我建议您使用 PowerShell,因为它是Windows Server中主流的管理工具。Windows Server 2012内置了一个cmdlet来生成自签名证书:https://technet.microsoft.com/zh-cn/library/hh848633(v=wps.630).aspx 当 Microsoft 弃用 makecert 工具后,他们增强了 certreq 命令行工具,使其具备了生成自签名证书的能力,但这会带来额外的开销:http://blogs.technet.com/b/askds/archive/2012/08/14/rsa-key-blocking-is-here.aspx

什么是开销?我在你发布的博客文章中没有找到它。也许我只是错过了它。 - pepo
在 INF 文件准备中的开销,certreq INF 特定语法等方面都可以通过使用命名参数(可以通过自动完成和内置帮助子系统进行探索)来避免。我个人只在必要时才使用 certreq (几乎从不使用)。 - Crypt32

0

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