我编写了一个应用程序来生成用于SSO的SAML2令牌。它使用System.Security.Cryptography.X509Certificates对XML进行签名并加密断言。
我们将为我们的生产环境购买证书,但是现在我需要从我们的集成服务器测试自己创建的证书。我使用MakeCert创建了一个并将其加载到My Store中的LocalMachine位置。这在我是localhost时有效,但在远程访问时出现以下错误:
The requested operation cannot be completed. The computer must be trusted for delegation and the current user account must be configured to allow delegation.
System.Security.Cryptography.Utils.CreateProvHandle(CspParameters parameters, Boolean randomKeyContainer) +369
System.Security.Cryptography.Utils.GetKeyPairHelper(CspAlgorithmType keyType, CspParameters parameters, Boolean randomKeyContainer, Int32 dwKeySize, SafeProvHandle& safeProvHandle, SafeKeyHandle& safeKeyHandle) +151
System.Security.Cryptography.RSACryptoServiceProvider.GetKeyPair() +85
System.Security.Cryptography.RSACryptoServiceProvider..ctor(Int32 dwKeySize, CspParameters parameters, Boolean useDefaultKeySize) +280
System.Security.Cryptography.X509Certificates.X509Certificate2.get_PrivateKey() +468
....
我已下载winhttpcertcfg并使用它来提供用于网站应用程序池的域帐户(SharePoint2010),而对于NetworkService,则访问证书但这没有效果。
有人能指出我的资源,解释如何在Windows 8中正确创建和实现XML签名和加密的自签名证书吗?
答案 0 :(得分:3)
这需要在localmachine Trusted Root Certifying Authority中创建一个Certifying Authority,然后使用它来签署应用程序使用的证书。
此链接提供了允许我完成此操作的详细信息:http://www.digitallycreated.net/Blog/38/using-makecert-to-create-certificates-for-development