반응형
X509 저장소에서 모든 인증서를 검색하는 방법
다음 코드를 사용하여 asp.net 웹 앱에서 PC의 모든 인증서를 검색하고 있습니다.인증서 컬렉션이 비어 있는데, 그 이유를 이해할 수 없습니다.
저는 제 사용자 계정을 사칭하려고 시도했지만 역시 성공하지 못했습니다.내가 뭘 잘못하고 있는 거지?
var store = new X509Store(StoreLocation.CurrentUser); //StoreLocation.LocalMachine fails too
var certificates = store.Certificates;
foreach (var certificate in certificates)
{
var friendlyName = certificate.FriendlyName;
Console.WriteLine(friendlyName);
}
//original problem: fetch a single certificate by its subject name
X509Certificate2 clientCertificate = CertificateUtility.GetCertificate(StoreName.My, StoreLocation.CurrentUser, "CN=mypc.domainname"); //returns null :(
이 코드 줄을 두 번째 줄에 추가하고 작동 방식을 확인합니다.
store.Open(OpenFlags.ReadOnly);
그 다음 아래쪽::
store.Close();
올인원...
저는 https가 있는 아파치 서버(샘플)를 가지고 있습니다.나는 https와 c#(vs2010)을 통해 PHP 업로드 페이지에 접속합니다.
예를 들어 개인 폴더 인증서에 인증서를 설치합니다.
인증서를 보려면 적어도 win7에서 "certmgr.msc"를 실행합니다.
개인 인증서 나열
var store = new X509Store(StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
var certificates = store.Certificates;
foreach (var certificate in certificates)
{
var friendlyName = certificate.FriendlyName;
var xname = certificate.GetName(); //obsolete
Console.WriteLine(friendlyName);
}
store.Close();
특정 인증서 찾기
string certificateName = "CN=localhost"; //name found in the var xname
X509Store storex = new X509Store(StoreName.My, StoreLocation.CurrentUser);
storex.Open(OpenFlags.ReadOnly);
X509Certificate2Collection certificatesx =
storex.Certificates.Find(X509FindType.FindBySubjectName,
certificateName,
true);
X509Certificate certificatex = certificates[0];
storex.Close();
...을 통해 인증서를 찾을 수 있습니다.
var certificateStore = new X509Store(StoreName.TrustedPeople, StoreLocation.LocalMachine);
certificateStore.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
var certificateCollection = certificateStore.Certificates.Find(X509FindType.FindBySubjectName, "mycert.me.com",false);
certificateStore.Close();
var certificate = certificateCollection[0];
certificateCollection에는 내가 관심 있는 인증서가 있을 것입니다... 하나만 있으면 컬렉션의 첫 번째 요소를 얻을 수 있습니다.
인증서 저장소(추가/추가/인증서 스냅인/내 사용자 계정/인증서 - 현재 사용자/개인/인증서)에서 "CN=mypc.domainname"이 실제로 인증서에 무엇인지 확인합니다.
"CN=mypc.domainname"
대
"CN = mypc.domainname"
...기타
언급URL : https://stackoverflow.com/questions/4729302/how-to-retrieve-all-certificates-in-your-x509store
반응형
'programing' 카테고리의 다른 글
| MySQL 덤프 가져오기 버그 (0) | 2023.08.18 |
|---|---|
| 레일 응용 프로그램에서 AJAX Post Jquery 전송 (0) | 2023.08.18 |
| Multi Master용 Galera 클러스터:Ubuntu 16.04.4 x64에서 두 번째 노드 시작 실패 (0) | 2023.08.13 |
| 문자열 크기(바이트) 측정(php) (0) | 2023.08.13 |
| aws에서 서버리스 배포 시 자동으로 기능 실행 (0) | 2023.08.13 |