Windows 10和Visual Studio 2015安装中缺少Makecert?

51

我进行了Windows 10和Visual Studio 2015的全新安装,但无法找到makecert.exe文件。是否需要安装其他软件来获取该程序?

我查看了“C:\Program Files (x86)\Microsoft SDKs\Windows\\"下的所有文件夹,但没有找到它。

我还打开了“VS2015开发人员命令提示符”并尝试运行“makecert”,但未找到该文件。

4个回答

51

1
安装Windows 10 SDK成功了。我原以为Visual Studio 2015的安装包已经包含了SDK,但可能并不是所有的组件都包含在内。 - Brian McCarthy
1
自从Win8以来,微软将工具从VS移动到SDK中。 - magicandre1981
12
微软啊,就一个 .exe 文件,难道我们真的需要下载并安装整个 SDK 吗? - matthewbaskey
@matthewbaskey请在connect上提交请求,将exe重新包含在VS中,并作为反馈意见:https://connect.microsoft.com/VisualStudio/feedback/ - magicandre1981
17
这是一个大小为69kb的独立.exe文件...我无法想象微软为什么拒绝以独立下载的方式提供它,而是强制我安装2.5GB的SDK,而我并不打算使用它。唉... - Gary Stanton
2
只需安装“Windows SDK”即可安装makecert。请参考:http://www.virtues.it/2015/08/howto-create-selfsigned-certificates-with-makecert/ - Bala Sakthis

43

如ShaneH在这个问题中所回答的,makecert.exe已经被弃用了,我们应该使用PowerShell命令let New-SelfSignedCertificate。

New-SelfSignedCertificate -Subject "CN=测试代码签名" -Type CodeSigningCert -KeySpec "Signature" -KeyUsage "DigitalSignature" -FriendlyName "测试代码签名" -NotAfter (get-date).AddYears(5)


对于旧版本的PS,可以从TechNet获取此脚本: https://gallery.technet.microsoft.com/scriptcenter/Self-signed-certificate-5920a7c6

为了让我的回答更加完整,以下是如何使用TechNet脚本的简要说明:

  1. 导航到上面的链接并下载New-SelfSignedCertificateEx.zip文件
  2. 解压缩它到某个位置
  3. 运行PowerShell控制台并导航到包含新文件的位置
  4. 运行命令.\New-SelfSignedCertificateEx调用函数。记得附加必要的参数。

.\New-SelfsignedCertificateEx -Subject "CN=测试代码签名" -EKU "Code Signing" -KeySpec "Signature" -KeyUsage "DigitalSignature" -FriendlyName "测试代码签名" -NotAfter [datetime]::now.AddYears(5)

如果你在使用这个工具时遇到问题,还有两点需要注意。

  1. 如果PowerShell抱怨脚本被禁用了,请以管理员身份运行控制台,并调用此命令:Set-ExecutionPolicy unrestricted
  2. 如果PowerShell仍然拒绝运行它,请确保您已经在文件名前加上 .\(点斜杠),因为这是必要的。

我该如何使用PowerShell实现这个?https://joekiller.com/2012/04/03/creating-a-x-509-or-signing-certificate-for-aws-ec2-using-powershell-and-windows-sdk/ 我找不到任何信息。 - AlexB
我的评论中有链接,里面包含了所有的内容。下载NewSelfSignedCertificateEx.zip文件,然后运行PowerShell命令:New-SelfsignedCertificateEx -Subject "CN=Test Code Signing" -EKU "Code Signing" -KeySpec "Signature" -KeyUsage "DigitalSignature" -FriendlyName "Test code signing" -NotAfter [datetime]::now.AddYears(5)。 - komsky
2
只是一个快速的提示:在运行 .\New-SelfsignedCertificateEx 命令时,我无法使其正常工作(没有错误,也没有证书),直到我运行了 Import-Module .\New-SelfSignedCertificateEx.ps1。之后,我就可以使用 New-SelfsignedCertificateEx 命令(不需要前面的“.\”),脚本就可以正常工作了。 - sherb
1
这是我的操作顺序:1. 以管理员身份运行 Windows Powershell -> 2. 运行 Set-ExecutionPolicy unrestricted -> 3. 运行 New-SelfSignedCertificate -Subject "CN=Test Code Signing" -Type CodeSigningCert -KeySpec "Signature" -KeyUsage "DigitalSignature" -FriendlyName "Test Code Signing" -NotAfter (get-date).AddYears(5) - Minh Nguyen

5
我的C盘快速搜索结果表明,makecert.exe似乎随Fiddler 2一起分发,位于C:\Program Files (x86)\Fiddler2文件夹中。这比完整的Windows SDK要下载的内容要小得多。
值得一提的是,我使用的是Fiddler 2的4.6.20171.26113版本。

1
仍然适用于Fiddler4: "C:\Users<youruser>\AppData\Local\Programs\Fiddler\makecert.exe" - ToDevAndBeyond

3

下载Windows SDK for Windows后,要安装 "makecert.exe" 只需勾选 "Windows软件开发工具包"。

enter image description here


8
在 Windows 10 的 SDK 中,这个复选框不存在。 - Borislav Ivanov

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