none
SSL 클라이언트 개발관련 질문 RRS feed

  • 질문

  • 한글 포럼이 있었군요. 맨날 영어로 쓰느라 힘들었는데ㅜㅜ 이제 한글로 써야겠네요ㅎㅎ

     

    서버/클라이언트 프로그램을 만들고 있는데요.

    OpenSSL을 사용하셔어 X509인증서를 생성한 다음에 서버에 설정을 했어요.

    그래서 확인해보면 웹브라우저 상에서는 HTTPS 프로토콜을 사용해서 페이지가 정상적으로 뜨는게 확인이 됩니다.

    그리고나서 클라이언트를 직접 개발해야하기 때문에 HttpWebResponse의 GetResponseStream()

    을 호출하면 SSL/TLS 신뢰관계를 형성할 수 없다는 에러가 발생합니다.

    인증서가 신뢰되는 기관에서 발급된게 아니라 자체 생성해서 발생하는 문제 같은데요.

    그래서 인증서를 웹브라우저를 이용해서 다운받은 다음에, 해당 인증서를 ClientCertificates 속성에

    포함해서 접속하면 정산작동합니다.

    그런데, 이 프로그램을 개발용 컴퓨터가 아닌 다른 컴퓨터에서 실행시켰더니 정상적으로 네트워크통신이 안되더군요;;;;

    인증서가 발급받은 클라이언트 컴퓨터에서만 동작하는것 같더라구요.

     

    그래서 자체 제작한 클라이언트에서 개발중인 우리 서버로 접속하여서 인증서를 받아오는 로직이 추가되어야 할거 같은데요.

     

    MSDN 찾아봐도 그 부분이 나와 있지는 않더군요.

    어떻게 해야 하나요?

    2011년 4월 7일 목요일 오전 2:27

모든 응답

  • SSL 을 통해 통신을 할때, 신뢰된 인증 기관이 아니라면, 외부 컴퓨터에서는 올바르게 통신하는데 지장이 있습니다.

    이와 관련하여 신뢰되지 않은 SSL 인증서로 통신을 하기 위해서,
    ServicePointManager 클래스를 이용하시면 됩니다.

    http://msdn.microsoft.com/en-us/library/dd633677.aspx

    CertificateValidationCallBack 메서드를 return true 로 구현해 주시면,
    신뢰되지 않은 SSL 인증서의 사이트도 무시하고 통신을 시도하게 됩니다.

     


    엄준일 (Junil, Um) Microsoft Visual Studio ALM MVP (Team System) Personal Blog : http://blog.powerumc.kr Visual Studio Korea Team Blog : http://vsts2010.net
    2011년 5월 28일 토요일 오후 7:41
  • 관련 링크를 참조해서 return true로 했을때 다른 버그가 발생했던 것으로 기억합니다.

    이 문제에 관한 답은 영문 포럼에서 얻어서 해결했습니다.

    http://social.msdn.microsoft.com/Forums/ko-KR/csharpgeneral/thread/ff451243-ed1b-4870-a281-469e69d005bf

     

    답변해 주셔서 감사합니다.

    2011년 5월 30일 월요일 오전 1:25