使用存储在AWS CloudHSM中的证书进行mage.exe清单签名

问题描述 投票:0回答:1

我正在尝试使用mage.exe使用存储在Amazon CloudHSM中的证书来签署清单。

我安装了Amazon CloudHSM Windows客户端,它添加了Cavium Key Storage ProviderCavium CNG Provider提供程序。我可以使用我在CloudHSM中的证书与signtool.exe签约,但我无法让mage.exe工作。我有NETFX 4.7.2的mage.exe所以它有-CryptoProvider参数。

我已经尝试为-CryptoProvider指定上述两个提供程序:

"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\mage.exe" -Sign myapp.exe.manifest -CertHash <thumbpring> -CryptoProvider "Cavium Key Storage Provider" -KeyContainer my

但我得到:

内部错误,请再试一次。指定的提供程序类型无效。

调用mage.exe以使用备用密钥存储提供程序对清单进行签名的正确参数是什么?

注意:证书必须在HSM中。在其他商店中使用证书不是一种选择。

注2:由于我可以使用signtool.exe进行签名,因此可以访问证书,正确设置CloudHSM等。此问题似乎特定于使用mage.exe访问该证书。

更新:我使用JetBrains dotPeek反汇编.NET Framework 4.7.2 mage.exe,将其导出到一个项目,破解项目足以让它编译,我能够与被黑客攻击的mage.exe签名。我只需要-CertHash参数而不是-CryptoProvider。我不确定它是否是权限问题,因为我用来编译它的一些内容是程序集属性并使其无符号。

我不是在考虑解决这个问题,因为我不想在生产应用程序中使用haz版本的mage.exe。另外,我甚至没有确认我可以通过允许ClickOnce应用程序正确部署的方式签署应用程序和部署清单。这只是通过“授权”mage.exe查找解决方案的更多信息。

clickonce mage amazon-cloudhsm
1个回答
0
投票

我碰到了同样的事情......我相信MAGE中有一个错误

Bug记录在这里:https://github.com/Microsoft/dotnet/issues/986

我不得不重新编译法师,并重新定位到.NET 4.7.2

我不得不使用-CertFile,-CryptoProvider和-KeyContainer来签名,我无法弄清楚如何让-CertHash工作..

注意找到密钥容器:

certutil -store my

然后查找您的证书,然后使用“密钥容器= XXXXX”值

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.