WCF证书权限问题

WCF证书权限问题,wcf,permissions,certificate,Wcf,Permissions,Certificate,我有一个自托管的WCF服务正在QA中使用SSL的自签名(makecert.exe)证书进行测试。如果使用管理员权限和.BAT文件启动web服务,则程序启动SSL端点不会有问题 但是,如果我以普通windows服务启动web服务,以“NT Authority\System”运行,程序将经常(但不是始终?!)无法启动,抛出一个错误,“可能没有能够交换密钥的私钥,或者进程可能没有私钥的访问权限” 这是我使用的makecert命令: makecert -iv Cas_temp_Authority.pv

我有一个自托管的WCF服务正在QA中使用SSL的自签名(makecert.exe)证书进行测试。如果使用管理员权限和.BAT文件启动web服务,则程序启动SSL端点不会有问题

但是,如果我以普通windows服务启动web服务,以“NT Authority\System”运行,程序将经常(但不是始终?!)无法启动,抛出一个错误,“可能没有能够交换密钥的私钥,或者进程可能没有私钥的访问权限”

这是我使用的makecert命令:

makecert  -iv Cas_temp_Authority.pvk -n "CN=ServerName" ServerName.cer -sv 
ServerName.pvk -ic ServerName.cer -sr localmachine -ss my -sky exchange -pe -eku
1.3.6.1.5.5.7.3.1
我使用这个netshell命令将证书分配给端口

netsh http add sslcert ipport=0.0.0.0:8086 certhash=755f7fcf49ff3f06d9d7e551a10ef35776f2dc57 
appid={42e1d4bf-7106-4666-90f7-4634456fb7f1} clientcertnegotiation=enable
我使用此netshell命令设置端口权限:

 netsh http add urlacl url=https://+:8086/ServiceName/MethodName/ 
 user="NT Authority\System"
我知道证书或编程代码没有问题;如果有什么问题,服务根本不会启动。这里的问题是,它仅以管理员身份使用.EXE启动,而不会以普通windows服务启动

如果有任何帮助,我将不胜感激。

您是否尝试过使用microsoft提供的工具

winhttpcertcfg -g -c LOCAL_MACHINE\MY -s [cert common name] -a "NT Authority\System"

您应该检查存储证书的存储位置。这样,存储看起来就可以了。如果服务在以管理员身份运行时可以找到证书,那么它不应该以“NT Authority\System”的形式找到它吗?这就是困扰这个问题的原因。是的,我试过了。我想我只是放弃了我想在那里做的事情,创造了一个新的工作环境。不过谢谢你。