首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >修改已安装证书的安全性

修改已安装证书的安全性
EN

Stack Overflow用户
提问于 2009-03-10 13:48:18
回答 3查看 1.1K关注 0票数 1

我们正在为基于WCF的web服务创建一个安装包。该服务通过已安装的证书使用消息级加密。我正在尝试想出一种自动安装证书和设置其权限的方法。

目前,我们正在通过MMC管理单元手动安装证书。安装后,我们需要找到包含已安装证书的文件,并修改权限,以便Network Service帐户可以访问它。我所知道的找到该文件的唯一方法是打开"...\Microsoft\Crypto\RSA\MachineKeys“文件夹(具体路径因平台而异),并标识具有最近修改日期的文件。

我想我们可以使用WIX来创建安装包。WIX有一个用于安装证书的特定功能,但我认为权限仍然是一个问题。是否有某种实用程序或API或其他方法来获取由使用者名称(或类似名称)标识的已安装证书的物理路径。

当然,也许有一个更直接的解决方案来解决这个问题。

感谢您在这个问题上的帮助。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-03-11 03:33:59

来源:Least Privilege

在托管代码中,没有一种简洁的方法可以做到这一点。一般步骤如下:

  1. 选择证书
  2. 从证书的PrivateKey属性创建RSACryptoServiceProvider对象
  3. 检索UniqueKeyContainerName属性。
  4. 在存储密钥的各种位置中搜索此文件名。用户密钥在ApplicationData下,机器密钥在CommonApplicationData下

如果您想在自定义操作中执行此操作,我建议您在C++中执行此操作。(托管自定义操作在大多数情况下不是一个好主意。)

如果您只想设置ACL,有两个工具可以为您完成此任务:

  • WinHttpCertCfg.exe
  • WSE3

中包含的证书工具

详情请看链接,希望这对你有帮助!

票数 1
EN

Stack Overflow用户

发布于 2009-03-10 21:42:27

是否需要安装证书?您是否可以从PFX文件或类似文件中引用它,从而消除安装的任何需要?

票数 0
EN

Stack Overflow用户

发布于 2009-03-11 18:43:33

证书本身没有权限。它可以位于用户的证书存储库中,如MY、CA或根存储库。或者它可以在这些商店的计算机版本中。听起来您还需要在安装证书的同时安装私钥。若要使服务能够访问私钥,应将其安装到计算机的密钥库中。如果您通过类似于CryptImportKey的方式手动执行导入,则应该在使用CryptAcquireContext获取密钥容器时指定CRYPT_MACHINE_KEYSET。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/630247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档