gpt4 book ai didi

wcf - 如何让 certmgr 为所有用户而不是当前用户添加 pfx?

转载 作者:太空宇宙 更新时间:2023-11-03 13:28:58 24 4
gpt4 key购买 nike

我正在开发一个 WCF 服务,它使用 SSL 证书来保证传输安全。

我按照各种在线教程和提示生成并导入了证书。使用以下命令导入证书:

certmgr.exe -add -all -c <filename>.pfx -s -r localMachine my

我的 WCF 服务在控制台模式下使用导入的证书愉快地运行。当我将服务切换为使用作为“网络服务”运行的 Windows 服务托管时,问题就开始了。异常是提示应用程序无权访问已安装的私钥。

于是我使用了FindPrivateKey.exe,发现私钥居然安装在当前用户的AppData文件夹中:

C:\Users\<username>\AppData\Roaming\Microsoft\Crypto\RSA\S-1-5-21-3289377140-263254259-3378496556-1105\d3a0de64e6f0513692d593a77a71d3ac_15824a33-515a-493c-a33f-38a7b852e11a

即使我授予“NETWORK SERVICE”用户对该文件的访问权限,它也不会工作。

最后我必须删除证书,并使用 MMC 重新导入,它将私钥放置到:

C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys\c3ccd4300462fe2aa7cec7f747fbd075_15824a33-515a-493c-a33f-38a7b852e11a

所以我的问题是,如何让 certmgr 将私钥放在 C:\ProgramData\而不是当前用户的 AppData 中?

最佳答案

您不应尝试在文件级别使用证书。它是不保证支持的内部实现。

有一个 MS 工具可以帮助您:

The Microsoft Windows HTTP Services (WinHTTP) certificate configuration tool, "WinHttpCertCfg.exe", enables administrators to install and configure client certificates in any certificate store that can be accessed by the Internet Server Web Application Manager (IWAM) account.

http://msdn.microsoft.com/en-us/library/windows/desktop/aa384088(v=vs.85).aspx

您需要运行的命令:

This command grants access to the private key of the "MyCertificate" certificate in the "My" certificate store for the TESTUSER account.

winhttpcertcfg -g -c LOCAL_MACHINE\My -s MyCertificate -a TESTUSER

使用此链接安装该工具:

http://www.microsoft.com/en-us/download/details.aspx?id=19801

关于wcf - 如何让 certmgr 为所有用户而不是当前用户添加 pfx?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11149407/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com