우리는 호스팅하는 서버의 웹 서비스에 연결하는 .Net 응용 프로그램을 보유하고 있으며 해당 서버의 https/443에 SSL 인증서가 바인딩되어 있습니다. 때로는 이러한 SSL 인증서가 자체 서명 되었기 때문에 ServicePointManager.ServerCertificateValidationCallback에 대해 프로그래밍 한 메서드 내에서 X509Certificate2.Verify() 메서드와 SslPolicyErrors.None 열거 형에 완전히 의존하지 않습니다. 왜냐하면 우리의 인증서가 항상 유효한.SSL 인증서 "발행자"가 서버 수정
해시 문자열 (X509Certificate.GetCertHashString())의 서명을 확인하고 "승인 된"인증서 목록과 비교하는 두 번째 단계가 있습니다. 이렇게하면 알려진 인증서 인 경우 콜백에 대해 true를 반환 할 수 있습니다.
설치 사이트 중 하나에서 정확히 동일한 웹 서버에 연결할 때 다른 해시 문자열이 표시됩니다. X509Certificate 객체의 모든 속성을 로그 파일에 인쇄 한 후 "Issued By"값이 연결될 때마다 다릅니다. 사용자의 워크 스테이션에서 네트워크 하드웨어로, 그리고 서버로 연결되는 과정에서 인증서를 수정합니다. 우리 응용 프로그램이 인증서의 유효성을 검사 할 때 먼저 신뢰할 수있는 기관이 아니며 해시 문자열을 검사 할 때 두 번째로 승인 된 목록에 있지 않습니다 (발급자를 변경하면 해시가 변경되는 것 같습니다).
누구든지 어떻게하는지에 대해 아이디어를 제공 할 수 있습니까? 또한, .Net에서 프로그래밍 방식으로 수행하는 방법에 대한 아이디어가 있습니까?
감사합니다, 댄