WCF部署:让IIS有权限访问证书文件
2010-04-24 15:36
295 查看
默认情况下,只有所有者和“系统”帐户才可以访问证书的私钥文件。
1. 证书的私钥文件在计算机上的存储位置?
Windows xp存放在:C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys
Windows vista存放在:C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys
2. 哪个文件才是我们要找的证书的私钥文件?
Crypto\RSA\MachineKeys 这个文件里可能有很多文件,有几种方法可以确定。
1)根据文件的修改日期
2)如果根据文件的修改日期,不能确定是哪个文件,可以使用FindPrivateKey这个工具来获取证书的完整路径。
FindPrivateKey 工具需要证书存储区名称、证书存储区位置以及可以唯一标识此证书的信息。
FindPrivateKey 工具接受将证书的主题名称或其指纹作为唯一标识符。
下面的代码示例使用 FindPrivateKey 工具来确定指纹为
46 dd 0e 7a ed 0b 7a 31 9b 02 a3 a0 43 7a d8 3f 60 40 92 9d
的证书的私钥在 LocalMachine 的 My 存储区中的位置:
findprivatekey.exe My LocalMachine -t "46 dd 0e 7a ed 0b 7a 31 9b 02 a3 a0 43 7a d8 3f 60 40 92 9d" -a
3)哪里获取 FindPrivateKey 这个工具?
这里是 FindPrivateKey 的源代码:FindPrivateKey.7z
3. WCF 运行时所使用的是哪个帐户?
4. 如何把证书私钥文件的读访问权限授予WCF所使用的帐户?
1)通过资源管理器->文件属性->安全,来设置证书私钥文件读访问权限
2)使用 cacls.exe 等工具来设置证书私钥文件读访问权限。
下面的代码示例编辑 (/E) 指定文件的访问控制列表 (ACL),以向“NETWORK SERVICE”帐户授予 (/G) 对此文件的读 (:R) 访问权限:cacls.exe "C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys\8aeda5eb81555f14f8f9960745b5a40d_38f7de48-5ee9-452d-8a5a-92789d7110b1" /E /G "NETWORK SERVICE":R
参考资料:如何:使 X.509 证书可由 WCF 访问, WCF的用户名密码认证
1. 证书的私钥文件在计算机上的存储位置?
Windows xp存放在:C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys
Windows vista存放在:C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys
2. 哪个文件才是我们要找的证书的私钥文件?
Crypto\RSA\MachineKeys 这个文件里可能有很多文件,有几种方法可以确定。
1)根据文件的修改日期
2)如果根据文件的修改日期,不能确定是哪个文件,可以使用FindPrivateKey这个工具来获取证书的完整路径。
FindPrivateKey 工具需要证书存储区名称、证书存储区位置以及可以唯一标识此证书的信息。
FindPrivateKey 工具接受将证书的主题名称或其指纹作为唯一标识符。
下面的代码示例使用 FindPrivateKey 工具来确定指纹为
46 dd 0e 7a ed 0b 7a 31 9b 02 a3 a0 43 7a d8 3f 60 40 92 9d
的证书的私钥在 LocalMachine 的 My 存储区中的位置:
findprivatekey.exe My LocalMachine -t "46 dd 0e 7a ed 0b 7a 31 9b 02 a3 a0 43 7a d8 3f 60 40 92 9d" -a
3)哪里获取 FindPrivateKey 这个工具?
这里是 FindPrivateKey 的源代码:FindPrivateKey.7z
3. WCF 运行时所使用的是哪个帐户?
方案 | 进程标识 |
客户端(控制台或 WinForms 应用程序)。 | 当前登录的用户。 |
自承载服务。 | 当前登录的用户。 |
在 IIS 6.0 (Windows Server 2003) 或 IIS 7.0 (Windows Vista) 中承载的服务。 | NETWORK SERVICE |
1)通过资源管理器->文件属性->安全,来设置证书私钥文件读访问权限
2)使用 cacls.exe 等工具来设置证书私钥文件读访问权限。
下面的代码示例编辑 (/E) 指定文件的访问控制列表 (ACL),以向“NETWORK SERVICE”帐户授予 (/G) 对此文件的读 (:R) 访问权限:cacls.exe "C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys\8aeda5eb81555f14f8f9960745b5a40d_38f7de48-5ee9-452d-8a5a-92789d7110b1" /E /G "NETWORK SERVICE":R
参考资料:如何:使 X.509 证书可由 WCF 访问, WCF的用户名密码认证
相关文章推荐
- 解决WCF部署到IIS出现“证书必须具有能够进行密钥交换的私钥,该进程必须具有访问私钥的权限”
- WCF部署到IIS:证书必须具有能够进行密钥交换的私钥,该进程必须具有访问私钥的权限
- 解决IIS中部署WCF时,访问.svc文件的404错误问题
- IIS7.5 windows server 2008 部署网站 访问文件无权限
- IIS部署WCF之“句柄无效”和“必须具有能够进行密钥交换的私钥。该进程必须具有访问私钥的权限。”
- 解决IIS中部署WCF时,访问.svc文件的404错误问题
- 前端-网站部署-本地IIS部署-无法访问-端口权限开启
- ASP.NET Webform或者ASP.NET MVC站点部署到IIS下,默认情况下.json文件是不能被访问的,如果请求访问.json文件,则会出现找不到文件的404错误提示
- IIS 里无法访问 WCF 的SVC文件。
- ASP.net IIS 访问服务器文件的权限问题
- 您不具备查看该目录或页面的权限,因为访问控制列表(ACL)对Web服务器上的该资进行了配置-关于IIS新追加文件无法访问的原因
- WCF部署到IIS不使用svc文件
- 在IIS部署Silverlight应用和WCF RIA Services,出现异常:未能加载文件或程序集“System.ServiceModel.DomainServices.Hosting, Ver
- iis部署网站(asp.net或者wcf)出现HTTP 错误 404.17 - Not Found 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。
- WCF 服务IIS部署 SvcUtil.exe 工具文件地址 及 生成代理类命令
- wcf寄宿在iis上的跨域访问问题【不止是添加跨域文件】
- WCF 服务文件 *.svc 部署到 IIS 步骤
- WCF入门学习3-配置文件与部署iis
- 关于window service2008系统iis部署访问证书,内部错误
- 解决IIS服务和用户上传的文件分别部署在不同的电脑上时,解决权限的问题