让我解释一下我的困境。我正在编写一个 ASP.NET Web 应用程序,它应该让登录用户下载我的客户端 Windows 可执行文件。在下载此类文件之前,Web 应用程序会更改 .exe 文件中的一些字符串(通过使用用户选择修改 exe 文件图像)。
我现在正在研究一种使用我的代码签名证书对这个可执行文件进行数字签名的方法。问题是,要做到这一点,我需要通过 Microsoft 的signtool运行它,该工具需要在运行Web 应用程序的服务器上安装数字证书,或者我提供包含我的私钥的 .pfx 文件。
这带来了两个问题:
如果我在服务器上安装我的数字证书,那么任何人都可以使用它从该服务器上签署任何可执行文件(我希望避免这种情况。)
如果我选择为我的证书上传导出的个人信息交换(PFX 文件),我可以用密码保护它,但signtool将需要该密码来签署我的 exe 文件,它需要以纯文本形式。所以我需要将密码存储在某个地方,这也不是那么安全。
有什么建议,我该如何克服这些?