2009-12-21 2 views
1

고객 사이트에서 웹 서비스를 호출하는 프로그램이 있고, 웹 서비스가 제 3 자에 의해 제공 되었기 때문에 SSL이 필요하므로 그것에 대해 아무 것도 할 수 없습니다.X509Chain에서 알 수없는 오류를 어떻게 파악할 수 있습니까?

대부분의 경우 자체 서명 인증서가 있기 때문에 오류가 발생하므로 X509Chain.ChainElements.ChainElementStatus에서 UntrustedRoot 오류를 확인하고 무시합니다.

괜찮습니다. 그러나 새 클라이언트에서 오류가 발생하고 ChainElementStatus 요소가 빈 배열로 나타납니다. 무슨 일이 일어날 지에 대한 생각은? IE에서 인증서 오류를 보면 신뢰할 수있는 CA에서 인증서를 발급 한 것이 아니라고 표시됩니다.

편집 :

DateTime=2009-12-21T21:58:29.8719648Z 

System.Net 정보 : 0 : 마르쿠스 제안으로 추적을 추가, 나는 다음과 같은 오류가 돌아 오는 것을 볼 [0772] SecureChannel 번호 57280435 - 원격 인증서에 오류가 : ProcessId를 = 4964 날짜 시간 = 2009-12-21T21 : 59 : 15.3239262Z System.Net 정보 : 0 : [0772] SecureChannel 번호 57,280,435 - 내부 인증서 체인 오류가 발생했습니다.

ProcessId=4964 
DateTime=2009-12-21T21:59:15.3239262Z 

System.Net 정보 : 0 : [0772] SecureChannel 번호 57280435 - 사용자에 의해 무효로 원격 인증서가 확인되었다. ProcessId = 4964

답변

2

로깅을 추가해 보았습니까? 그게 내가 과거에 몇 가지 관련된 오류 (나는 인증서가 더 이상 유효하지 않은 시간에 누군가가 시계를 앞으로 돌렸다고 깨닫기 위해 인증서 관련 문제를 디버깅하는 것을 기억하는 것보다 많은 시간을 보냈었다) .

Jeff P Sanders great blog post에서 인증서 관련 오류를 디버깅하는 과정을 읽은 후 문제를 찾아 냈습니다. asp.net 클라이언트 용으로 작성되었지만 일반 .net 클라이언트에서도 똑같이 작동합니다.

핵심은 (App | Web) .Config 파일에 adding a couple of trace listeners입니다. 아마도 가장 흥미를 끌 것으로 예상되는 것은 System.Net과 System.Net.Sockets의 추적 기록입니다.

<configuration> 
<system.diagnostics> 
    <trace autoflush="true" /> 
    <sources> 
     <source name="System.Net"> 
      <listeners><add name="System.Net"/></listeners> 
     </source> 
     <source name="System.Net.Sockets"> 
      <listeners><add name="System.Net"/></listeners> 
     </source> 
    </sources> 
    <sharedListeners> 
     <add 
      name="System.Net" 
      type="System.Diagnostics.TextWriterTraceListener" 
      initializeData="System.Net.trace.log" 
      traceOutputOptions = "ProcessId, DateTime" 
     /> 
    </sharedListeners> 
    <switches> 
     <add name="System.Net" value="Verbose" /> 
     <add name="System.Net.Sockets" value="Verbose" /> 
    </switches> 
</system.diagnostics> 
</configuration> 

문제가 해결되지 않으면 질문을 추가 정보로 업데이트 할 수있는 충분한 데이터가 있어야합니다.

+0

감사합니다. 훨씬 더 많은 정보를 얻지는 못했지만 추적의 관련 부분이라고 생각하는 것을 추가했습니다 ... – CodeRedick

관련 문제