got*_*ike 6 ssl certificate visual-studio visual-studio-2017
我在Visual Studio 2017中有一个VSTO程序。当我通过ClickOnce发布并将文件托管在网络上时,为了使安装过程运行更流畅,我从DigiCert购买了EV证书。
这就是我买的-https: //www.digicert.com/code-signing/ev-code-signing/
所以我等了几天,拿到了我的USB令牌,设置了所有东西,现在当我用花哨的新证书对应用程序进行签名时……安装完全失败。
用户得到的错误是:
Customized Functionality in this application will not work because the certificate used to sign the deployment manifest for AppName or its location is not trusted. Contact your administrator for further assistance.
我联系DigiCert寻求技术支持,他们基本上说这是Visual Studio 2017和操作系统的错误。
然后,我打电话给Entrust,以查看是否可以确认,因为它们也具有EV证书:https: //www.entrust.com/code-signing-certificates/#ev-code-signing-certificates
原来,我猜想除非您购买一个,否则他们将无法回答问题。他们只是说:“购买并尝试,如果无法使用,我们会退还您的钱。”
怎么可能没人知道如何从Visual Studio签名安装?
我希望能够签署此安装并使其正常工作。
在DigiCert的支持下花了很多时间在电话上之后,我们终于找到了可行的过程。
在这种情况下,立即变得不明显的是,您最终需要进行大量的代码签名。
因此,当您构建VSTO应用程序时,请使用EV证书对代码进行签名。然后,当您要发布(使用ClickOnce)时,您将不得不再次签名。
但是即使在那之后,您也必须两次重新签名安装文件才能使所有这些工作!
在花费大量时间之后,我现在有了一个批处理文件,该文件执行最后步骤,包括将安装文件同步到Amazon S3进行部署。
所以这是我的做法:
Build(或Rebuild为了安全起见),您将必须使用加密狗进行签名。PropertiesProperties去Signing,并确认您选择了正确的证书。如果您跳过此步骤,则该应用将无法安装。Properties,Publish并确保设置发布位置和安装文件夹。我将Amazon S3用于安装文件夹。Publish Now。它将要求您再次签名。现在,您会认为此时您已经完成了……但是您还没有完成。
.p12证书。我联系了DigiCert支持人员,由于遇到了很多问题,他们可以免费给我一个(可能是一年)。这与EV证书不同。.p12证书和EV之后,我运行以下批处理例程,该例程会对setup.exe文件TWICE进行签名(.p12使用EV 一次,然后再次使用EV),并且还会推送到Amazon S3。这是我的SignDeploy.bat档案:
echo off
cls
echo Signing setup.exe with .p12 Certificate File
"C:\Program Files (x86)\Windows Kits\10\bin\x64\signtool.exe" sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /f [LOCATION OF P12 FILE] /p [PASSWORD] [LOCATION OF SETUP.EXE]
pause
echo Signing setup.exe with EV Certificate from Store
"C:\Program Files (x86)\Windows Kits\10\bin\x64\signtool.exe" sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /sha1 [EV HASH FROM DIGICERT] [LOCATION OF SETUP.EXE]
pause
echo Dry run on syncing files up to S3
aws s3 sync [LOCAL DEPLOYMENT FOLDER] [S3 BUCKET AND FOLDER LOCATION] --acl public-read --dryrun
echo
echo If that worked, it's time to send them up for real.
echo Control-C to stop now, or...
pause
aws s3 sync [LOCAL DEPLOYMENT FOLDER] [S3 BUCKET AND FOLDER LOCATION] --acl public-read
pause
Run Code Online (Sandbox Code Playgroud)
完成所有这些操作后(我认为您最终总共要输入EV证书密码3次),setup.exe从指定位置下载的用户(必须与应用程序中指示的用户名相同)将能够安装和运行VSTO应用程序。
在客户端安装过程中,我们还遇到了其他问题,但是使用上述过程解决了签名问题。
我不会假装不明白为什么需要签署这么多次,也无法从Visual Studio内顺利完成所有工作。DigiCert试图让我Build Events用来执行此操作,但是由于那些进程在BUILD而不是PUBLISH的任一侧运行,因此它不起作用。我们需要的是Publish Events我认为不存在的东西。
我已经探索了使用MsBuild.exe进行更长的命令行处理的想法,但是很难做到Automatically increment revision with each release这一点。
也许这里有人知道如何设置。我的过程仍然有点手工,但是在这一点上它似乎可以可靠地工作,因此我不希望过多地使用它。
| 归档时间: |
|
| 查看次数: |
843 次 |
| 最近记录: |