所选证书对编码签名无效

时间:2017-06-27 15:50:44

标签: powershell certificate clickonce

我有以下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的应用程序中,在项目属性页面的“签名”选项卡上,单击“从文件中选择”并浏览到该文件,然后我得到:

  

所选证书对编码签名无效。选择   另一个证明文件。

我做错了什么?

Screenshot of Signing tab showing an existing cert

根据@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中没有提到使用情况,我没有提及使用情况。我如何获得此信息?

1 个答案:

答案 0 :(得分:2)

您需要使用New-SelfSignedCertificate运行-Type CodeSigningCert以获取可用于代码签名的证书。

是的,Get-Help的{​​{1}}页面非常无用。

[请注意,我无法看到您的屏幕截图,因为我的网络上已阻止该图片主机。]