首页 / 知识
关于安全性:如何为Windows上的代码签名创建自签名证书?
2023-04-16 16:26:00

How do I create a self-signed certificate for code signing on Windows?如何使用Windows SDK中的工具创建用于代码签名的自签名证书? 更新的答案 如果您使用以下Windows版本或更高版本:Windows Server 2012,Windows Server 2012 R2或Windows 8.1,则现在不建议使用MakeCert,并且Microsoft建议使用PowerShell Cmdlet New-SelfSignedCertificate。 如果您使用的是Windows 7等旧版本,则需要坚持使用MakeCert或其他解决方案。有人建议使用公钥基础结构Powershell(PSPKI)模块。 原始答案 虽然您可以一次性创建自签名的代码签名证书(SPC-软件发布者证书),但我更喜欢执行以下操作: 创建自签名证书颁发机构(CA)
(^ =允许批处理命令行换行) 这将创建带有可导出私钥(-pe)的自签名(-r)证书。它的名称为"我的CA",应放在当前用户的CA存储中。我们正在使用SHA-256算法。该密钥用于签名(-sky)。 私钥应存储在MyCA.pvk文件中,证书应存储在MyCA.cer文件中。 导入CA证书 因为如果您不信任CA证书就没有意义,因此需要将其导入Windows证书存储区。您可以使用"证书" MMC管理单元,但可以从命令行使用:
创建代码签名证书(SPC)
与上面的内容几乎相同,但是我们提供了颁发者密钥和证书(-ic和-iv开关)。 我们还希望将证书和密钥转换为PFX文件:
如果要保护PFX文件,请添加-po开关,否则PVK2PFX将创建没有密码短语的PFX文件。 使用证书签名代码
(看看为什么时间戳很重要) 如果将PFX文件导入证书存储(可以使用PVKIMPRT或MMC管理单元),则可以按以下方式签名:
完整的Microsoft文档
资料下载
对于不是.NET开发人员的用户,您将需要Windows SDK和.NET框架的副本。当前链接在此处可用:SDK和.NET(在 可从Visual Studio命令提示符中获得MakeCert。 Visual Studio 2015确实具有此功能,可以从Windows 7的"开始菜单"下的" VS 2015开发人员命令提示符"或" VS2015 x64本机工具命令提示符"(可能它们都在同一个文件夹中)启动。 如答案中所述,为了使用一种不推荐使用的方式来签名自己的脚本,应该使用New-SelfSignedCertificate。
如果您有多个证书,则[0]可使此功能有效。显然,使索引与要使用的证书相匹配...或使用过滤方式(通过指纹或发行方)。
显然,一旦设置了密钥,就可以使用它对其他脚本进行签名。 罗杰的回答很有帮助。 但是,我在使用它时遇到了一些麻烦,并一直显示红色的" Windows无法验证此驱动程序软件的发行者"错误对话框。关键是使用以下命令安装测试根证书
罗杰的答案还没有涵盖。
这是一个对我有用的批处理文件(带有我的.inf文件,不包括在内)。
在Powershell中使用New-SelfSignedCertificate命令相当容易。
您的证书selfsigncert.pfx将位于@
可选步骤:您还需要将证书密码添加到系统环境变量中。为此,请在cmd中输入以下内容: 从PowerShell 4.0(Windows 8.1 / Server 2012 R2)开始,可以在Windows中制作没有makecert.exe的证书。 您需要的命令是New-SelfSignedCertificate和Export-PfxCertificate。 使用PowerShell创建自签名证书中的说明。 |
最新内容
相关内容
linux命令补全工具?
linux命令补全工具?,工具,系统,软件,地址,命令,名称,智能,环境,信息,终端,简述Linux中的命令行自动补齐功能1、首先打开LINUX的操作系统,在左边linux系统命令行工具?
linux系统命令行工具?,工具,系统,工作,状态,命令,地方,标准,信息,环境,基础,Linux:Python编写Linux自定义命令工具state是命令执行结果的状态,rlinux命令下载工具?
linux命令下载工具?,工具,网络,代理,代码,简介,位置,系统,第一,下载工具,文件,Linux下多线程下载工具MWget和Axel使用介绍1、wget是linux下一linux好用的命令工具?
linux好用的命令工具?,系统,管理,工具,基础,服务,信息,工作,发行,公司,代码,Linux系统中进行磁盘管理的常用命令有哪些?分别有什么功能Linux磁linux常用命令行工具?
linux常用命令行工具?,系统,工作,工具,地址,管理,信息,命令,软件,目录,基础,linux常用命令有哪些1、linux系统常用操作命令linux系统常用操作linux命令行专业工具?
linux命令行专业工具?,工具,系统,工作,信息,服务,环境,基础,命令,管理,发行,linux系统常用操作命令1、linux常用命令有pwd命令、cd命令、ls命linux命令行执行工具?
linux命令行执行工具?,工具,系统,网络,分析,工作,服务,状态,信息,电脑,发行,shell编程(掌握Linux命令行工具)1、在开始Shell编程之前,我们需要linux命令行执行工具?
linux命令行执行工具?,工具,系统,网络,分析,工作,服务,状态,信息,电脑,发行,shell编程(掌握Linux命令行工具)1、在开始Shell编程之前,我们需要开发linux命令工具?
开发linux命令工具?,系统,工具,环境,状态,平台,设计,数据,电脑,中小企业,标准,Linux界面开发工具有哪些?1、大多数Linux发放版本,自身捆绑了诸linux命令行工具大全?
linux命令行工具大全?,工作,系统,工具,地址,信息,命令,目录,基础,管理,文件,linux常用的命令有哪些linux系统常用操作命令如下:ls:全拼list,功能linux命令联想工具?
linux命令联想工具?,地址,工作,系统,工具,状态,标准,信息,命令,目录,左下角,Linux:Python编写Linux自定义命令工具首先我们先认识一下cat指令linux命令工具怎么用?
linux命令工具怎么用?,地址,系统,工作,单位,工具,密码,服务,命令,处分,基础,怎样在Win10中使用Linux命令推荐:win10系统下载中文具体如下:首先,点