创建自签名数字证书PFX格式
创建自签名数字证书PFX格式
1 在系统中安装一个自签名数字证书
1.1 安装makecert.exe,可直接安装Visual Studio(Visual Studio包含makecert.exe)
1.2 使用makecert.exe在系统中安装一个自签名数字证书
1.2.1 打开vs的命令行。
makecert -r -pe -n "CN=DOXX CA" -$ commercial -a sha1 -b 01/01/2020 -e 01/01/2100 -cy authority -ss root -sr currentuser
- 1
其中:
-r 创建一个自签名证书。
-pe 将私钥标记为可导出。
-n “名称” 发布者证书的名称。该名称必须符合X.500标准。最简单的方法是使用“ CN = MyName ”格式。例如:-n“ CN = Test”。
-$ 证书颁发机构 认证机构的类型。必须将CertificateAuthority设置为commercial商业的(对于要由商业软件发行者使用的证书)或individual个人的(对于要由各个软件发行者使用的证书)。
-a 一种 算法 哈希算法。必须设置为SHA-1或MD5(默认为MD5)。
-b 日期开始 证书首次生效的日期。默认值为创建证书的时间。DateStart的格式为mm/dd /yyyy。
-e 日期结束 有效期结束的日期。默认值为2039年。
-cy 证书类型 证书类别。CertificateTypes可以end结束对终端实体,或authority权威机构的权威认证。
-ss 主题证书存储库的名称,将在其中存储生成的证书。
-sr 主题的证书库的注册表位置。必须是LocalMachine(注册表项HKEY_LOCAL_MACHINE)或CurrentUser(注册表项HKEY_CURRENT_USER)(默认为CurrentUser)。
1.2.2 在弹出的对话框中点击“确定”。
1.2.3 成功创建数字证书命令行将提示"Succeeded"
2 将自签名数字证书导出为带密码的PFX格式(含私钥)
2.1 寻找创建的自签名证书
2.1.1 按下Windows+R组合键输入“certmgr.msc”,点击确定。
2.1.2 依次点开“受信任的根证书颁发机构”-“证书”,找到“DOXX CA”
2.2 导出“DOXX CA”证书为PFX格式(含私钥)
右击“DOXX CA”,依次点击所有任务-导出
按照下图指示点击“下一步”
这里选择导出私钥点击“下一步”
继续点击“下一步”
选择使用密码,并输入PFX证书文件的访问密码(要记住此密码),更改加密方式为AES-256方式,点击“下一步”
点击“浏览”选择保存位置,点击“下一步”
signtool签名
signtool sign /f "D:\sign.pfx" /p 证书密码 /fd SHA256 "D:\a.exe"
signtool在 C:\Program Files (x86)\Microsoft SDKs\ClickOnce\SignTool
C#读取文件签名证书
var cert = X509Certificate2.CreateFromSignedFile(@"D:\a.exe");