2014-03-25 3 views
1

PKCS # 12 (PFX 파일)에서 적절한 X509Store를 열 수있는 컬렉션 내의 인증서 유형을 어떻게 식별 할 수 있습니까?C#으로 인증서 및 체인 가져 오기 (PFX 파일)

X509Certificate2Collection collection = new X509Certificate2Collection(); 
collection.Import("mycert.pfx", "mypass", X509KeyStorageFlags.PersistKeySet); 
foreach(X509Certificate2 cert in collection) 
{ 
    // client cert? intermediate CA? root CA? 
} 

보통 내 시나리오에서 클라이언트 인증서에는 개인 키가 있고 루트 CA에는 cert.Subject == cert.Issuer가 있습니다. 그게 유일한 방법인가요?

답변

1

내 생각 엔 X509Chain을 작성하고 각각 ChainElement을 따르는 것입니다.

이 체인의 각 인증서에 개인 키가 있는지 살펴 봅니다. 그것이 최종 엔티티 인증서가 있다면 (나는 그것을 테스트하지 않았지만 체인은 계층 적으로 만들어 져서 최종 엔티티가 체인의 첫 번째 요소가 될 것입니다).

기타는 CA 인증서 여야합니다. 그러나 안전을 위해 KeyUsage Certificate Signing 확장자와 BasicConstraints Subject Type=CA을 찾을 것입니다.