2011-10-26 3 views
5

내 응용 프로그램에서 자체 서명 된 인증서가있는 서버에 요청해야하는 경우가 있습니다. 특정 요청에 대해서만 인증서 유효성 검사를 사용하지 못하도록하고 싶습니다.단일 요청에 대한 인증서 유효성 검사 사용 안 함

콜백 메서드를 가리 키도록 ServicePointManager.ServerCertificateValidationCallback을 설정하여 인증서의 유효성을 검사하지 않고 단순히 true를 반환 할 수 있음을 알고 있습니다. 그러나 이렇게하면 app.config에서 설정하여 수행 할 수있는 전체 응용 프로그램의 인증서 유효성 검사가 비활성화됩니다.

그러나 전체 애플리케이션을 사용 중지하지 않고 개별 요청을 사용 중지하려는 경우 그게 가능하니?

내가 함께 일하고 클래스는 인증서 유효성 검사는 일반적으로 나쁜 생각 비활성화려면 SmtpClient

답변

0

입니다. 왜 사용자 정의 인증서를 시스템이나 응용 프로그램의 신뢰할 수있는 인증서로 추가하지 않는가?

AFAIR 예 : 자신의 X509CertificateValidator을 구현하여 응용 프로그램에 사용자 지정 인증서를 포함시키고 두 인증서가 동일한 경우 X509CertificateValidator에서 비교하십시오.

도 참조하십시오. How safe is my custom SSL verification logic to handle excepted RemoteCertificateNameMismatch?

+0

응답을위한 로버트 thaks. 신청서의 일부에서 우리는 인증서가 유효하지 않은 경우 허용하고 싶지 않습니다. 그러나 우리가 이메일을 보내고있는이 특별한 경우에 우리는 SSL을 사용하기를 원하지만 많은 고객들이 자체 서명 된 SSL 인증서를 가지고있어 이메일을 보내지 못하는 것을 발견하고 있습니다. 불행하게도 이것은 SMTP 서버의 경우에 자주 발생하며, 실패한 모든 SMTP 서버에 대한 인증서를 가져 오는 것은 악몽 일 것입니다. 따라서 SMTP가 인증서 실패 및 응용 프로그램의 다른 부분을 받아 들일 수있는 능력을 허용하려고합니다. –

+0

그런 다음 똑같은 문제가있는 Android "K9"Mail-Client에도 사용 된 검증 스키마를 사용해야 할 수도 있습니다. 처음으로 신뢰할 수없는 인증서를 발견하면 일부 인증서 세부 정보가 표시되어 사용자에게이 인증서를 신뢰하는지 묻습니다. 사용자가 예 AFAIR로 대답하면이 인증서를 유효한 것으로 표시하는 설정 파일에 인증서 해시를 저장합니다. 그런 다음 내부 인증서 유효성 검사기는 모든 일반 인증서와 저장된 해시 인증서를 수락합니다. 모두를위한 작품이며 여전히 상대적으로 안전합니다. – Robert

+0

불행히도이 서비스는 사용자 인터페이스가 없으므로 사용자가 클릭하여 인증서를 수락 할 수있는 대화 상자가 없습니다. –

관련 문제