【打包2】给软件数字签名
一、准备生成签名所需的材料
1)添加签名AppxManifest.xml文件。在项目右建》添加》xml文件》修改文件名为AppxManifest。
在打开AppxManifest.xml文件,输入以下内容:
<Identity Name="Contoso.AssetTracker" Version="1.0.0.0" Publisher="CN=6BB5F6F-C03-4035-BB1E-903407A2"/>
.注意:6BB5F6F-C03-4035-BB1E-903407A2是微软应用商店提供的(包/标识/发行商)
保存文件。
二、生成签名
1、执行如下命令
使用New-SelfSignedCertificate 生成签名,Makecert.exe工具以及过时。
New-SelfSignedCertificate -Type Custom -Subject "CN=6BBF5F6F-C023-4035-BB1E-903407A2A71D" -KeyUsage DigitalSignature -FriendlyName "MailTool" -CertStoreLocation "Cert:\CurrentUser\My" -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3", "2.5.29.19={text}") -NotAfter (Get-Date).AddYears(10)
2、执行如下命令
$password = ConvertTo-SecureString -String 123.qwer -Force -AsPlainText
注意:123.qwer是密码,这个要记住,等下给xxx.msi文件签名的时候也会用到.
以下图引用别人的,我自己涉及到微软应用商店,所有就不贴出来了。
3、执行命令导出证书,得根据实际情况修改下路径等信息
Export-PfxCertificate -cert "Cert:\CurrentUser\My\D503BB12D07AFA7A7276CE3D18DB63CCE9AB7685" -FilePath test.pfx -Password $password
我们项目的目录下面已经生成了test.pfx文件
在桌面新建一个文件假,将test.pfx 复制到该该文件中备用。
三、发布项目软件
这个在其他文章中介绍了,这里不在细谈。
四、将发布后的软件,打包成 XXXX.msi文件。XXXX.msi文件复制到桌面的文件假中备用。
这个在其他文章中介绍了,这里不在细谈。
五、给XXXX.msi文件签名
1、用signtool.exe工具给 打包后的【日语五十音图.msi】文件签名。signtool.exe工具在 C:\Program Files (x86) 目录下, 在该目录下查找signtool.exe签名工具。
记录signtool.exe的路径,待会会用到:
C:\Program Files (x86)\Microsoft SDKs\ClickOnce\SignTool\signtool.exe
2、打开前面在桌面新建的文件夹,然后再路径栏输入cmd
3、输入以下命令,注意这里就用到了签名记录的signtool.exe的路径。
"C:\Program Files (x86)\Microsoft SDKs\ClickOnce\SignTool\signtool.exe" sign /f test.pfx /p 123456 /t http://timestamp.digicert.com /v "日语五十音图.msi"
注意:123.qwer是生成签名时候用的密码
4、点击【日语五十音图.msi】右建属性》就可以查看 【日语五十音图.msi】文件已经签名。
六、【日语五十音图.msi】打包成xxxx.msix格式的文件
目的是为日发布微软应用商店。所有还要再此使用test.pfx的签名文件
1)我使用MSIX Packaging Tool打包工具。
2)导入刚才生成的数字test.pfx 文件。输入签名文件用的密码”123.qwer“.
其余的打包过程请查看:https://www.cnblogs.com/cdaniu/p/18090730
总结 简单过程
第一步 New-SelfSignedCertificate -Type Custom -Subject "CN=6BBF5F6F-C023-4035-BB1E-903407A2A71D" -KeyUsage DigitalSignature -FriendlyName "MailTool" -CertStoreLocation "Cert:\CurrentUser\My" -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3", "2.5.29.19={text}") -NotAfter (Get-Date).AddYears(10) 第二步
$password = ConvertTo-SecureString -String 123.qwer -Force -AsPlainText 第三步 Export-PfxCertificate -cert "Cert:\CurrentUser\My\CD623FADEE7F99BB8F27D660E3EE55D14353DC7F" -FilePath test.pfx -Password $password 第四步 "C:\Program Files (x86)\Microsoft SDKs\ClickOnce\SignTool\signtool.exe" sign /f test.pfx /p 123.qwer /t http://timestamp.digicert.com /v "日语五十音图.msi"