我有以下Powershell脚本为C#应用程序创建新证书:
$expirationDate = [datetime]::Today.AddYears(5)
$thumb = (New-SelfSignedCertificate -CertStoreLocation cert:\localmachine\my -DnsName $env:USERDNSDOMAIN -KeyExportPolicy Exportable -Provider "Microsoft Enhanced RSA and AES Cryptographic Provider" -NotAfter $expirationDate).Thumbprint
$pwd = '123456'
$SSpwd = ConvertTo-SecureString -String $pwd -Force -AsPlainText
$destinationDirectory = "C:\Test\"
$filename = "mycert.pfx"
$pathAndFilename = $destinationDirectory + $filename
Export-PfxCertificate -cert "cert:\localmachine\my\$thumb" -FilePath $pathAndFilename -Password $SSpwd
运行正常。然后在Visual Studio的应用程序中,在项目属性页面的“签名”选项卡上,单击“从文件中选择”并浏览到该文件,然后我得到:
所选证书对编码签名无效。选择 另一个证明文件。
我做错了什么?
根据@ConnorLSW评论添加信息。我现在有这个脚本:
$pwd = '123456'
$SSpwd = ConvertTo-SecureString -String $pwd -Force -AsPlainText
$destinationDirectory = "C:\Test\"
$filename = "mycert.pfx"
$pathAndFilename = $destinationDirectory + $filename
Import-PfxCertificate -cert "cert:\localmachine\my" -FilePath $pathAndFilename -Password $SSpwd
输出:
目录:Microsoft.PowerShell.Security \ Certificate :: LocalMachine \ my
指纹主题
AA1032E160156EC22D4447967A8B6401FF25E838 CN = AAAA.BBBB.CC.DDD
在documentation中没有提到使用情况,我没有提及使用情况。我如何获得此信息?
答案 0 :(得分:2)
您需要使用New-SelfSignedCertificate
运行-Type CodeSigningCert
以获取可用于代码签名的证书。
是的,Get-Help
的{{1}}页面非常无用。
[请注意,我无法看到您的屏幕截图,因为我的网络上已阻止该图片主机。]