我安装windows服务在一个新的机。该服务的各种操作过SslStream over TCP,其使用的证书的问题。

该服务已经运作的现有相同的码和相同的证书上的其他2个窗户2003机。但是,这一新的机Windows2003年有64位处理器。

我跑到这个问题,当我试图运行的服务与服务的帐户的身份。它的工作的现有我自己的全权证书。(再次,它工作正常的其他机2与本服务帐户)

我没有强有力的保障启用的同时,进口证书。

这是堆叠踪。

系统。ComponentModel(.Win32:提供的凭据的 包都不承认 系统。网。SSPIWrapper.AcquireCredentialsHandle(SSPIInterface SecModule,串包裹, CredentialUse意图,SecureCredential scc)在 系统。网。安全。安全.AcquireCredentialsHandle(CredentialUse credUsage,SecureCredential& secureCredential)在 系统。网。安全。安全.AcquireClientCredentials(Byte[]& 指纹)在 系统。网。安全。安全.GenerateToken(Byte[] 输入,Int32抵消,Int32计数, 字节[]和输出)在 系统。网。安全。安全.NextMessage(Byte[] 来,Int32抵消,Int32计数)
在 系统。网。安全。SslState.StartSendBlob(Byte[] 来,Int32计数, AsyncProtocolRequest asyncRequest)
在 系统。网。安全。SslState.ProcessReceivedBlob(Byte[] 缓冲区,Int32计数, AsyncProtocolRequest asyncRequest)
在 系统。网。安全。SslState.StartReadFrame(Byte[] 缓冲区,Int32readBytes, AsyncProtocolRequest asyncRequest)
在 系统。网。安全。SslState.StartReceiveBlob(Byte[] 缓冲区,AsyncProtocolRequest asyncRequest)在 系统。网。安全。SslState.CheckCompletionBeforeNextReceive(ProtocolToken 消息,AsyncProtocolRequest asyncRequest)在 系统。网。安全。SslState.StartSendBlob(Byte[] 来,Int32计数, AsyncProtocolRequest asyncRequest)
在 系统。网。安全。SslState.ForceAuthentication(Boolean receiveFirst,字节[]缓冲区, AsyncProtocolRequest asyncRequest)
在 系统。网。安全。SslState.ProcessAuthentication(LazyAsyncResult lazyResult)在 系统。网。安全。SslStream.AuthenticateAsClient(String targetHost,X509CertificateCollection clientCertificates,SslProtocols enabledSslProtocols,布尔 checkCertificateRevocation)

有帮助吗?

解决方案

我发现这个问题和其解决方案。

我们的想法是将权限授予其用于服务标识的帐户。

需要使用工具WinHttpCertCfg.exe。这对于使用客户端证书获得授权的应用程序的帮助。

它很好地说明如下。 http://support.microsoft.com/kb/901183

感谢费罗兹·达乌德( http://ferozedaud.blogspot.com/ ),谁回答我在不同的论坛。

其他提示

我有过这样的问题,无论是ASP.NET帐户下运行或使用Windows服务(本地系统帐户下)时,时。如果你在ASP.NET下运行,适用于Windows 2003,你需要通过cdpnet上述使用WinHttpCertCfg.exe工具。 Windows 2008 R2上,您可以使用GUI,这是一个很好的改进访问权限。

但是,作为Windows服务运行时,您需要确保该证书是在个人证书存储区,通过进入MMC并添加证书管理单元中的任何一个窗口服务帐户,或者如果您使用的是“本地系统”帐户,刚拿到管理单元为本地计算机。

下面的区别是,我发现...

如果您已经安装了个人证书,以自己的用户的证书存储和复制,并粘贴到本地计算机存储,这并不总是工作。但是,如果您删除本地计算机存储,个人文件夹中的证书,然后你可以用鼠标右键单击在本地计算机存储个人文件夹,然后导入并完成向导。

有关某种原因,这种修复它和受让人正确的权限使用的证书。祝你好运!

我在做什么是在这里描述为一个赢2003服务和仍然无法得到它的工作,因为mssg"凭据,提供给包不承认".

我尝试了所有上述解决方案没有成功。

最后,我得到了它的工作做如下:

  1. makecert-pe-n"CN=证书"ss我-sr地计算机-一sha1-空中交易酷1.3.6.1.5.5.7.3.1-在"证书"-是我的-ir地计算机-sp"Microsoft RSA频道的密码提供者"-sy12CERT。cer
  2. 使用MMC复制从个人到信任的根
  3. 使用的证书所产生的(.cer)X509话从你的服务应用程序。

为什么...谁知道.....很高兴它的工作。我们希望这使它更容易对其他人

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top