2013-08-06 2 views
2

I가 다음과 같은 인증 경로와 하위 CA에서 나에게 발급 한 인증서 : 왜 내가 X509Chain.Build()으로 유효성을 검사 할 때, 난 항상 서브를 할 필요가신뢰할 수있는 루트 인증 기관에 하위 CA 인증서를 넣지 않으면 내 인증서가 유효하지 않은 이유는 무엇입니까?

Root CA 
    Sub CA 
     My Certificate 

입니다 CA가 신뢰할 수있는 루트 인증 기관 폴더에 있으면 true로 반환됩니까? 나는 그 루트 CA 인증서를 이미 가지고있다. 그래서 나는 루트를 신뢰하고 신뢰의 웹이되고, 또한 하위 CA를 신뢰하지 않아야 하는가? 지금 당장은 신뢰할 수있는 루트 인증 기관에 하위 CA 인증서를 추가하지 않으면 신뢰할 수있는 루트 인증 기관에 체인을 구축 할 수 없다고 말합니다.

+3

체인을 만들려고 할 때 어디에서 인증서를 읽습니까? 파일에서 읽으면 중간 (하위) CA도 파일에 있습니까? 그렇지 않다면 .NET은 어떻게 그것에 대해 알 수 있습니까? –

+0

@ ErikA.Brandstadmoen - 로컬 컴퓨터의 인증서 저장소에서 읽습니다. 하위 CA도 파일에 없습니다. 하위 CA가 내게 발급 한 최종 사용자 인증서가있는 하위 CA 인증서를 포함하는 방법은 무엇입니까? – Alexandru

+1

인증서 저장소에 최종 사용자 인증서가있는 경우 gtrig는 아래 답변에 나와 있으므로 하위 CA는 인증서 저장소에 있어야합니다. 그러나 신뢰할 수있는 ROot CA 목록에 있어야 할 필요는 없습니다. –

답변

3

Erik의 설명에 대해 자세히 설명하기 위해 루트 CA 인증서를 신뢰한다는 것은 루트 CA가 직접 서명 한 것을 신뢰한다는 것을 의미합니다.

중간에 하위 CA가있는 경우 해당 인증서는 루트 CA에서 서명하고 하위 CA는 인증서에 직접 서명합니다.

Root CA ---signs/verifies---> Sub CA ---signs/verifies---> End user certificate

에릭은 하위 CA 인증서의 존재가없는 경우, 다음 최종 사용자 인증서에 루트 CA를 연결하는 방법이 없습니다, 말했듯이. 루트는 하위 CA 인증서를 확인할 수 있으며 하위 CA는 최종 사용자 인증서를 확인할 수 있지만 루트가 최종 CA 인증서를 무시하고 루트가 최종 사용자 인증서에 서명하지 않았으므로 최종 사용자 인증서를 확인할 방법이 없습니다 . 이 문제를 해결하려면

2 가지 방법은 다음과 같습니다

  • 가 하위 CA의 신뢰할 수있는 인증서의 인증서 또는
  • 하위 CA의 인증서가 너무 체인 설립 할 수있는 최종 사용자 인증서에 포함되어 있는지 확인을 포함 .
+1

최종 사용자 인증서가있는 하위 인증 기관 인증서를 어떻게 포함합니까? – Alexandru

+0

인증서 저장소의 형식은 무엇입니까? p12, pfx, 다른 것? – gtrig