使用ClickOnce部署发布应用程序,可以使用CA机构签发的代码签名证书对清单进行签名。Visual Studio仅支持具有 .pfx扩展名的个人信息交换 (PFX) 密钥文件。如果拿到证书的后缀名是.p12,则可以直接重命名为.pfx或者将证书导入Windows证书存储区,然后通过单击项目属性“签名”页上的“从存储区选择”,从当前用户的 Windows 证书存储区选择其他类型的证书。

使用ClickOnce部署发布应用程序,可以使用CA机构签发的代码签名证书对清单进行签名。Visual Studio仅支持具有 .pfx扩展名的个人信息交换 (PFX) 密钥文件。如果拿到证书的后缀名是.p12,则可以直接重命名为.pfx或者将证书导入Windows证书存储区,然后通过单击项目属性“签名”页上的“从存储区选择”,从当前用户的 Windows 证书存储区选择其他类型的证书。


准备证书

通过和infiniSign申请CA机构签发的证书,签发的代码签名证书提取后的文件格式是p12,可将证书导入到Windows证书存储区,或者将后缀名直接改为pfx同样适用,详情参考:Windows 10内核驱动签名注意事项。如果提取的证书在导入时提醒密码错误 ,请参考文档:Firefox导出PFX证书在Win10导入提示密码错误

如果申请的是EV代码签名证书,则需要插入Token后并在下面步骤中从Windows证书存储区选择证书。

使用证书对应用程序和部署清单进行签名

  1. 转到项目属性窗口(右键单击“解决方案资源管理器”中的项目节点并选择“属性”,或在“快速启动”窗口中键入项目属性,或者在“解决方案资源管理器”窗口中按 ALT+ ENTER)。 在“签名”选项卡上,选中“为 ClickOnce 清单签名”复选框。
  2. 单击“从存储区选择”按钮。出现“选择证书”对话框,并显示 Windows 证书存储区的内容。如果单击“单击此处查看证书属性”,则会出现“证书详细信息”对话框。 此对话框包括有关证书的详细信息,并包括附加选项。 可以单击“证书”查看其他帮助信息。
  3. 如果证书未导入Windows证书存储区,可点击“从文件选择”
  4. 选择要用来对清单进行签名的证书。
  5. “时间戳服务器 URL”文本框中指定时间戳服务器的地址。

详情如下图,时间戳服务器因部分时间戳服务器网络原因,签名时间会偏长。

code signing by click once 13f14

关于更多ClickOnce的签名问题,请参考微软官方文档:对应用程序和部署清单进行签名

相关文章