none
配置证书后,令人崩溃的问题 RRS feed

  • 问题

  • 目前情况是,Wcf使用message证书验证方式,生成的证书放在了currentuser/my下,在vs2010调试下没有问题,但是部署到iis后,使用IE直接访问服务,就提示了

    无法使用以下搜索标准找到 X.509 证书

    搜索了网上的解决方法,给予了用户访问证书私钥的权限,但是还是不行。如果是Localmachine,则又会提示

    密钥集不存在。

    开发机器装的是win7。部署服务器是windows2003。反复试了很多次,都不能访问。要崩溃了。奇怪是为什么相同的情况,vs中调试就可以通过呢?

    是不是和证书不是正式的证书有关系啊?急急急啊。

    2012年2月3日 20:15

答案

  • 密钥集不存在这个错误可能是权限的问题

    请给密钥增加权限,打开进程管理器可以看到iis所使用的用户

    然后将以下语句存入cmd或bat执行:

    for /F "delims=" %%i in ('FindPrivateKey.exe My LocalMachine -t "fb 5e 38 b8 c3 0e 4d 60 0f f5 90 69 d3 cc c8 81 5e 9d a3 d0" -a') do set PRIVATE_KEY_FILE=%%i

    echo Y|cacls.exe "%PRIVATE_KEY_FILE%" /E /G "iis使用的账号名":R

    注意:

    1. 黑体字是证书的指纹,替换成你的证书指纹

    2. FindPrivateKey.exe 这个文件需要到网上下载,11k。

    3.IIS账户名随版本不同而不同,可能是NETWORK SERVICE或者ASPNET或者其他的

    4.更改完成后客户端更新服务引用,获取新证书或手动更改标识identity节点certificate的encodedValue值。


    • 已编辑 trulyzhu 2012年2月24日 8:36
    • 已标记为答案 Otomii Lu 2012年2月27日 8:46
    2012年2月24日 8:14

全部回复