如何使用网络服务帐户使用来自Windows服务程序的证书



我正在使用Trans Union新访问系统运行信用报告。我正在Windows 7 64位开发机器上这样做。

我有一个使用系统的Web应用程序(Web表单(项目。在一个按钮中,我有以下代码:

            CreditReportRequestXML requestXMLSupplier = new CreditReportRequestXML();
            requestXMLSupplier.RunPendingRequests();

此代码调用我编码的另一个项目中的方法。代码构建发布到Transunion的XML。我得到了很好的回答。

我还有另一个项目是Windows Service项目。该项目中的相关代码是:

            CreditReportRequestXML requestXMLSupplier = new CreditReportRequestXML();
            requestXMLSupplier.RunPendingRequests();

当我的帐户在我的帐户下运行的帐户是我的帐户时,这很好。该服务是作为服务安装的,可以使用服务控制台启动和停止。

到目前为止,一切都很好。

这是不好的。当我将服务配置为在网络服务帐户下运行时,我会收到以下错误:

无法创建SSL/TLS安全通道。

我一直在尝试使用winhttpcertcfg解决问题。我尝试了 -

winhttpcertcfg -g -c local_machine my -s ******** -a"网络服务"

(在哪里********是证书的主题名称。我可以在使用?clientcertificate.subjectname.name时看到此名称(

我也尝试了

winhttpcertcfg -i certfile.p12 -c local_machine my -a"网络服务" -P pwforcert

(其中certfile是文件名 - 请注意,我拥有的文件是p12文件,而不是pfx文件; pwforcert是我用于在Trans Union网站上创建系统客户端的密码。(

(

尝试两个命令后,该服务在上面的消息中失败。当我列出应该使用

访问私钥的帐户时

winhttpcertcfg -l -c local_machine my -s mycertificate

输出显示了正确的匹配证书,并说"具有访问私钥的其他帐户和组包括:',并将NT Authority Network Service列为其中一个帐户。

我要使用网络服务来运行服务的原因是我的老板要我这样做。我今天与我们的网络人交谈,他们在我们的服务器上没有具有管理特权的帐户。

我想念什么?或者,在此问题上还有其他方法吗?

我最终将其中一个证书导出到PFX文件,包括私钥和所有相关证书。这只能从我的机器上的一两个证书中完成。然后,我删除了所有TU证书。使用了winhttpcertcfg -i filename.pfx -c local_machine my -a"网络服务" -p ****。有效。

相关内容

最新更新