2012-06-15 3 views
0

나는 로컬 컴퓨터의 인증서 생성을 위해이 코드를 사용하고 있습니다.개인 인증서를 만드는 방법

X509Certificate2 certificate = new X509Certificate2(cerFilePath,password); 
     X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine); 

     store.Open(OpenFlags.ReadWrite); 
     store.Add(certificate); 
     store.Close(); 

출력이 만들어지는 보여줍니다하지만 certmanager의 개인 탭에 있지하지만 난 내보다 상점 이름이 다른 사용하는 경우 (예 : 신뢰할 수있는 게시자) 같은 프로그램을, 인증서는 StoreName이 아래에 인증서 관리자에서 사용할 수 있습니다.

개인적인 용도로 인증서가 필요합니다.

무엇이 잘못 되었나요?

+0

이 프로그램은 Windows 응용 프로그램이며 어떤 사용자가 실행합니까? 현재 사용자 미만입니까? 따라서 실행 컨텍스트에서 "나"는 누구입니까? 어떤 가게가 "StoreName.My"입니까? – Tisho

+0

관리자 모드에서 Visual Studio를 실행하고 있습니다. VC 프로젝트에서 입력으로 .pfx 파일을 가져 와서 인증서를 만들어야합니다. – RATHI

+0

현재 제공된 정보로 가장 이슈로 들립니다. 현재 사용자 (Thread.CurrentThread.CurrentPrincipal)에 대한 디버그 정보를 인쇄 할 수 있습니까? 응용 프로그램이 실제로 자신의 사용자로 실행되고 가장하지 않고 Store.My의 현재 내용을 인쇄하려면 이 코드가 실제로 certs를 넣을 예상 저장소인지 확인하십시오. – Tisho

답변

0

"LocalMachine"컨텍스트를 사용하는 경우 "승격 권한"()이 있어야합니다 (필요한 경우 관리자로 응용 프로그램을 실행하십시오)..

"LocalMachine"과 "CurrentUser"모두 "개인"(My)이라는 저장소가 있습니다!
"certlm.msc"로 "LocalMachine"저장소를 찾아보고 "certmgr.msc"를 사용하여 "CurrentUser"저장소를 탐색 할 수 있습니다.

관련 문제