2009-09-01 2 views
0

localhost에 대해 발급 한 자체 서명 인증서를 사용하여 Logon 웹 서비스에 WCF 전송 보안을 적용하는 데 성공했습니다. 자체 서명 된 인증서를 신뢰할 수있는 루트 인증 기관으로 추가하여 IE가 신뢰할 수없는 인증서에 대해 신음하는 것을 방지했습니다. localhost에 대해 테스트 할 때 모든 것이 잘 작동하며 localhost를 사용하기 때문에 모든 개발자가 문제없이 자신의 컴퓨터에서 서비스를 테스트 할 수 있습니다.Silverlight 응용 프로그램 용 원격 컴퓨터에서 WCF 전송 보안 테스트

그러나 이제 원격 테스트 서버에서이 작업을 수행하려고합니다. 원격 서버에서 실행될 때 localhost 인증서는 더 이상 작동하지 않습니다. 그래서 IIS7을 사용하여 서버 컴퓨터에 대한 자체 서명 테스트 인증서를 만들고 웹 사이트에서 https comm에이 인증서를 사용하도록 IIS를 설정했습니다. 나는 또한 이것을 서버의 신뢰 루트 인증 기관 저장소에 추가했다.

<behavior name="SSL"> 
    <serviceCredentials> 
    <serviceCertificate 
     findValue="prods-build.mydomain.co.za" 
     storeLocation="LocalMachine" 
     storeName="My" 
     x509FindType="FindBySubjectName" /> 
    </serviceCredentials> 
</behavior> 

이 동작은 다음 로그온에 연결되어 있습니다 : 아래 그림과 같이 I는 더 이상 로컬 호스트 인증서 지금 하지보기에 WCFserver 동작 구성을 변경할 수 있지만 컴퓨터의 DNS 이름에 묶여 하나를 찾을 수 Web.config 파일 업무 :

I가 사용될 바인딩 구성 참고로 포함
<service behaviorConfiguration="SSL" name="Pragma.OnKey.Services.Common.LogonService"> 
    <endpoint address="" bindingConfiguration="pragmaSSL" binding="basicHttpBinding" name="Silverlight" contract="Pragma.OnKey.Services.Common.ILogonService" /> 
    </service> 

:

<binding name="pragmaSSL"> 
     <security mode="Transport"/> 
    </binding> 

서버 컴퓨터 자체에서 정규화 된 도메인 이름을 사용하여 브라우저에서 테스트를 실행하면 모든 것이 잘 동작합니다. Fiddler는 로그온 웹 서비스 호출에 대해 HTTPS 연결을 표시합니다. 그러나 원격 컴퓨터에서 정규화 된 도메인 이름을 사용하여 동일한 테스트를 실행하자마자 일반적인 "URI에 대한 요청을 시도하는 중 오류가 발생했습니다. https://myserver/Services/Logon.svc..check the clientaccesspolicy.xml"오류가 발생합니다. clientaccesspolicy.xml (아래 참조)은 웹 사이트의 루트 폴더에 있습니다.이 모든 내용은 모두 까지 유효합니다. 정규화 된 DNS 이름을 사용하여 원격으로 서비스에 액세스하려고합니다.

<access-policy> 
    <cross-domain-access> 
    <policy> 
     <allow-from http-request-headers="SOAPACTION">  
     <domain uri="http://*"/> 
     <domain uri="https://*"/> 
     </allow-from> 
     <grant-to> 
     <resource path="/" include-subpaths="true"/> 
     </grant-to> 
    </policy> 
    </cross-domain-access> 
</access-policy> 

제 질문은 무엇이 잘못 되었습니까? 이 퍼즐의 어떤 부분을 놓치고 있습니까? 자체 서명 된 테스트 인증서와 Silverlight 클라이언트를 사용하여 원격 시스템에서 SSL 구현을 테스트하는 방법은 무엇입니까?

로컬 호스트에 대해 발급 된 자체 서명 된 인증서를 사용하여이 모든 작업이 정상적으로 작동 함을 기억하십시오. 그러나 테스트 및 스테이징 환경에서 우리의 응용 프로그램을 테스트하려면이 실행을해야합니다.

감사 카렐

서버에서 자체 서명 (따라서, 본질적으로 신뢰할 수없는) 인증서를 신뢰하도록 지시하는 클라이언트 컴퓨터에서 수행 한 어떤

답변

1

? 클라이언트의 신뢰할 수있는 저장소에 서버의 인증서를 추가 했습니까?

+0

감사합니다. 에릭, 내가 놓친 부분이었습니다. 또한 방화벽이 들어오는 연결을 차단하고있어 포트 443을 컴퓨터에서도 열어야한다는 사실을 발견했습니다. 다시 한번 감사드립니다. – Carel

관련 문제