programing

C #을 사용하여 프로그래밍 방식으로 로컬 컴퓨터 저장소에 인증서를 설치하려면 어떻게해야합니까?

goodcopy 2021. 1. 19. 08:06
반응형

C #을 사용하여 프로그래밍 방식으로 로컬 컴퓨터 저장소에 인증서를 설치하려면 어떻게해야합니까?


MakeCert를 통해 생성 된 인증서가 있습니다. PeerTrust를 사용하는 WCF 메시지 보안에이 인증서를 사용하고 싶습니다. C # 또는 .NET을 사용하여 "신뢰할 수있는 사용자"로컬 컴퓨터 인증서 저장소에 인증서를 프로그래밍 방식으로 설치하려면 어떻게해야합니까?

CER 파일이 있지만 PFX도 만들 수 있습니다.


나는 이것이 옳다고 믿는다.

using (X509Store store = new X509Store(StoreName.TrustedPeople, StoreLocation.LocalMachine)) 
{
   store.Open(OpenFlags.ReadWrite);
   store.Add(cert); //where cert is an X509Certificate object
}

다음은 나에게 유용합니다.

private static void InstallCertificate(string cerFileName)
{
    X509Certificate2 certificate = new X509Certificate2(cerFileName);
    X509Store store = new X509Store(StoreName.TrustedPublisher, StoreLocation.LocalMachine);

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

높은 권한이 필요한 LocalMachine에 인증서를 설치하는 대신 "CurrentUser"(나에게 적합 함)에 추가 할 수 있습니다.

X509Store store = new X509Store(StoreName.TrustedPeople, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadWrite);
store.Add(cert); //where cert is an X509Certificate object
store.Close();

X509KeyStorageFlags를 사용해야했습니다. PersistKeySet | X509KeyStorageFlags. MachineKeySet 플래그 나중에 인증서를 사용하려고 시도 할 때 발생한 "키 세트가 존재하지 않습니다" 오류 를 해결 합니다.

X509Certificate2 certificate = new X509Certificate2(pfxPath, password, X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.MachineKeySet);
using (X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine))
{
     store.Open(OpenFlags.ReadWrite);
     store.Add(certificate);
     store.Close();
}

이 기사 덕분 에 인증서 저장소에있는 인증서의 개인 키를 읽을 수 없습니다.

참조 URL : https://stackoverflow.com/questions/566570/how-can-i-install-a-certificate-into-the-local-machine-store-programmatically-us

반응형