내 로컬 컴퓨터 저장소에 x509가 있습니다. C#에서 어떻게 읽습니까? 나는 개인 키를이 당신에게 "내"(개인) 저장소에서 인증서를 얻을 것이다이 방법저장소에서 개인 키를 읽는 방법
RSACryptoServiceProvider rsa = (RSACryptoServiceProvider).cert.PrivateKey()
내 로컬 컴퓨터 저장소에 x509가 있습니다. C#에서 어떻게 읽습니까? 나는 개인 키를이 당신에게 "내"(개인) 저장소에서 인증서를 얻을 것이다이 방법저장소에서 개인 키를 읽는 방법
RSACryptoServiceProvider rsa = (RSACryptoServiceProvider).cert.PrivateKey()
을 얻을 사용해야합니다. 그 시점에서
var store = new X509Store(StoreName.My);
store.Open(OpenFlags.ReadOnly);
var certificate = store.Certificates.Single(c => c.Thumbprint == "Whatever-Your-Thumbprint-Is");
store.Close();
당신은 X509Certificate2있을 것이다 당신은 그것을에서의 PrivateKey 속성에 액세스 할 수 있습니다.
public void AddCertificate()
{
if (this.ClientCertificates == null)
{
this.ClientCertificates = new X509CertificateCollection();
}
X509Certificate cert = new X509Certificate(path, pass, X509KeyStorageFlags.MachineKeySet);
this.ClientCertificates.Add(cert);
}
예 로컬 저장소에서 인증서를 검색하는 방법을 알아야합니다. 현재 C 드라이브에 인증서가 있으며 거기에서 읽습니다. – JohnM
@ JohnM 원하는 인증서를 식별 할 수있는 방법이 필요합니다. 인증서 저장소에는 많은 인증서가 포함될 수 있습니다. 일반적으로 지문 또는 X500 DN이 사용됩니다. 지문은 중복을 생성하지 않으므로 바람직합니다. 이때 위의 예제에서'certificates' 변수에 대해'Find'를 사용하여 정확한 인증서를 찾을 수 있습니다. – vcsjones
그의 의견은 그 대답을 편집하기 전이었습니다. BTW는 다른 문맥에 따라 다르게 읽었을 것입니다. 그래, 상점에서 항상 똑같은 인증서를 찾고 있다면 좋은 방법입니다. . – Yushatak