이 X.509 인증서가 유효하지 않은 것으로 간주되는 이유는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/98074

  •  01-07-2019
  •  | 
  •  

문제

내 서버에 특정 인증서가 설치되어 있습니다.해당 인증서에는 유효한 날짜가 있으며 Windows 인증서 MMC 스냅인에서 완벽하게 유효한 것으로 보입니다.

그러나 HttpRequest에서 사용하기 위해 인증서를 읽으려고 하면 찾을 수 없습니다.사용된 코드는 다음과 같습니다.

    X509Store store = new X509Store(StoreName.Root, StoreLocation.LocalMachine);
    store.Open(OpenFlags.ReadOnly); X509Certificate2Collection col =
    store.Certificates.Find(X509FindType.FindBySerialNumber, "xxx", true);

xxx 일련 번호입니다.논쟁 거리 true "유효한 인증서만"을 의미합니다.반환된 컬렉션이 비어 있습니다.

이상한 건 내가 합격하면 false, 유효하지 않은 인증서가 허용됨을 나타내는 경우 컬렉션에는 지정된 일련 번호가 있는 인증서라는 하나의 요소가 포함됩니다.

결론적으로:인증서는 유효한 것처럼 보이지만 Find 메서드는 이를 유효하지 않은 것으로 처리합니다!왜?

도움이 되었습니까?

해결책

다음을 사용하여 인증서 체인을 확인해 보세요. X509체인 수업.이를 통해 인증서가 유효한 것으로 간주되지 않는 이유를 정확하게 알 수 있습니다.

erickson이 제안한 것처럼 X509Store에는 체인에 있는 CA의 신뢰할 수 있는 인증서가 없을 수 있습니다.OpenSSL 또는 다른 도구를 사용하여 자체 서명된 CA를 생성한 경우 해당 CA에 대한 공용 인증서를 X509Store에 추가해야 합니다.

다른 팁

X509Store에 발급자의 인증서가 있습니까?인증서는 신뢰할 수 있는 사람이 서명한 경우에만 유효합니다.

이 인증서는 실제 CA의 인증서입니까, 아니면 직접 서명한 인증서입니까?OpenSSL과 같이 개발자가 자주 사용하는 인증서 서명 도구는 기본적으로 몇 가지 중요한 확장을 추가하지 않습니다.

나는 x509 인증서가 특정 사용자와 연결되어 있다고 생각합니다.코드에서 생성된 사용자와 다른 사용자로 액세스하고 있기 때문에 유효하지 않을 수 있습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top