[英]How to grant an account permissions to access a certificate?
我在MSMQ服務個人存儲中有證書,我需要授予網絡服務訪問證書的權限。
我知道這樣做的唯一方法是使用win2008 / 7上的certutil.exe,如下所示:
certutil -service -service -repairstore MSMQ\My "" D:PAI(A;;GA;;;BA)(A;;GA;;;SY)(A;;GR;;;NS)
但是,win2003 / XP上的certutil無法識別-service參數,所以沒有好處。
我的問題是如何以適合Win2003 / XP和Win2008 / 7的方式實現?
我需要一種非交互式方法(命令行實用程序,腳本,COM / .NET / Win32 API)。
如果您只需要在證書的私鑰(您的鏈接頁面建議)上設置ACL權限,我最近在這里發布了一個關於我如何找到這個的答案。
打開X509Store並獲取當前的證書,然后在私鑰上設置ACL。
你可以使用這樣的東西來獲得需要訪問的帳戶的SID(或者如果你知道它總是網絡服務,那就使用眾所周知的SID S-1-5-20):
NTAccount nt = new NTAccount("NT_AUTHORITY", "NetworkService");
SecurityIdentifier sid = (SecurityIdentifier)nt.Translate(typeof(SecurityIdentifier));
我的另一個答案是設置ACL的代碼。 (警告:我在Windows Server 2003上運行它而不是XP。)
對於發布到安全網站的預定應用,我們遇到了類似的問題。
客戶端無法訪問證書存儲區。 下面發布的鏈接提到管理來自Windows 2008 r2 mmc的證書,並授予對相關用戶帳戶的訪問權限。 我們能夠以這種方式運行計划流程並授予對運行客戶端的帳戶的訪問權限。
通過調度程序,另一個解決方案是授予程序最高級別的訪問權限(安全風險)並允許它像管理員一樣運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.