在 PowerShell 中创建测试证书并使用测试证书给程序签名

在 PowerShell 中创建测试证书并使用测试证书给程序签名

在开发和测试过程中,有时您可能需要创建测试证书并使用它来给程序进行签名。这篇博客将介绍如何在 PowerShell 中创建测试证书并使用它给程序签名的步骤。

步骤 1: 打开 PowerShell

在开始菜单中搜索 "PowerShell" 并管理员权限打开 PowerShell 窗口。

步骤 2: 创建测试证书

在 PowerShell 中执行以下命令来创建测试证书:

$cert = New-SelfSignedCertificate -Type CodeSigningCert -Subject "CN=TestCertificate" -KeyUsage DigitalSignature -FriendlyName "DuwenlongTestCer"

这个命令将创建一个名为 "DuwenlongTestCer" 的测试证书,并将其存储在变量 $cert 中。

步骤 3: 导出测试证书

执行以下命令将测试证书导出为 .pfx 文件:

$certPath = "C:\Path\To\TestCertificate.pfx"
$certPassword = ConvertTo-SecureString -String "YourPassword" -Force -AsPlainText
Export-PfxCertificate -Cert $cert -FilePath $certPath -Password $certPassword

请将 C:\Path\To\TestCertificate.pfx 替换为您希望保存测试证书的路径和文件名。将 "YourPassword" 替换为您希望设置的证书密码。请确保你需要保存的路径已创建,同时把证书安装至证书根目录,双击证书执行安装。

步骤 4: 给程序签名

执行以下命令使用测试证书给程序签名:

Set-AuthenticodeSignature -CertificateFilePath $certPath -FilePath "C:\Path\To\YourProgram.exe"

请将 "C:\Path\To\YourProgram.exe" 替换为您希望签名的程序的完整路径和文件名。
完成上述步骤后,您将得到一个包含测试证书的 .pfx 文件,并且您的程序将使用该证书进行签名。

还可以使用signtool.exe 给文件签名
创建证书的流程用上面的就可以

配置Signtool.exe的环境变量

你安装的是多少的SDK,就在对应的SDK文件夹去找

$envPath = [Environment]::GetEnvironmentVariable("Path", "Machine")
$newPath = "$envPath;C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x64"
[Environment]::SetEnvironmentVariable("Path", $newPath, "Machine")

重新以管理员的身份启动PowerShell

使用Signtool.exe签名

signtool sign /f <证书文件路径> /p <证书密码> /t <时间戳服务器URL> <要签名的文件路径>

> signtool.exe sign /f "C:\Path\To\TestCertificate.pfx" /p duwenlong /fd SHA256 /t "http://timestamp.digicert.com" "C:\Users\qaz21\source\repos\WpfApp11\WpfApp11\bin\x64\Debug\netcoreapp3.1\WpfApp11.exe"
posted @ 2023-06-05 11:37  杜文龙  阅读(181)  评论(0编辑  收藏  举报