2012-04-27 3 views
1

웹 사이트, wcf 서비스 및 보안 토큰 서비스 (STS)가 하나의 서버에서 실행됩니다. 모든 것이 훌륭하게 작동합니다. 지금은 서버간에 peices를 분리하려고합니다. 웹 사이트가 토큰을 얻기 위해 로그인을 시도하면 SSL 오류가 발생합니다.서버와 WCF의 인증서

디버깅하는 동안 Server 2008과 IIS 7.5 및 Windows 7 IIS 7.5에 있습니다.

An error occurred while making the HTTP request to https://x.x.x.x/STS/issue/wstrust/mixed/username. This could be due to the fact that the server certificate is not configured properly with HTTP.SYS in the HTTPS case. This could also be caused by... 

STS 서버에서 자체 서명 된 인증서를 생성하여 웹 사이트 서버로 내 보냈습니다. 또한 키를 내보내고 IIS가 웹 사이트 서버의 키에 액세스하도록했습니다. WIF 오류가 많았지 만 실행되지는 못했지만 제대로 할 수 있는지 확신 할 수 없습니다.

나는 또한 [netsh http add sslcert ipport : 0.0.0.0 : 44400 ect ...]를 시도했지만 사용할 포트를 잘 모르지만, ive는 6 개의 다른 포트를 시도했지만 아무 것도 작동하지 않는 것으로 보입니다. 443은 사용하지 않습니다. 작업.

웹 사이트에서 WSTrustChannelFactory를 사용하여 연결을 만듭니다. 하단의 channel.issue 명령에 폭탄이 터집니다.

var factory = new WSTrustChannelFactory(
       new UserNameWSTrustBinding(SecurityMode.TransportWithMessageCredential), 
       new EndpointAddress(signInEndpoint)); 
      factory.TrustVersion = TrustVersion.WSTrust13; 

      factory.Credentials.UserName.UserName = userName; 
      factory.Credentials.UserName.Password = password; 

      var channel = factory.CreateChannel(); 

      var rst = new RequestSecurityToken 
      { 
       RequestType = RequestTypes.Issue, 
       AppliesTo = new EndpointAddress(realm), 
       KeyType = KeyTypes.Bearer 
      }; 


      try 
      { 
       var genericToken = channel.Issue(rst) as GenericXmlSecurityToken; 

** 수정 **

나는 또한 웹 사이트를 운영하는데 이용되는 서버 설정 443 포트를 기본 웹 사이트에 https 바인딩 내가 STS 서버에서 가져온 인증서를 사용하고 동일한 오류가 발생하도록 IIS했습니다.

** 최종 편집 **

나는 모든 구글과 유래를 통해 봤는데 많은 질문이 가까운 것 같다 동안 승인 된 답변의 방법으로도 문제가 해결되지있다.

아이디어가 있으십니까? 나는 "dummies 버전 용"이 좋을 것이므로 서버/하드웨어 놈입니다.

감사합니다.

+0

그것이 작동하지 않는 이유는 내 노트북이 iis 서버와 동일한 도메인에 있지 않다는 것입니까? – William

+0

IdentityServer에 대한 API 호출을 사용하는 데 동일한 문제가 있습니다. 이 문제를 해결 했습니까? IdentityServer가 신뢰할 수있는 CA 루트에서 자체 서명 된 인증서를 사용하여 클라이언트와 동일한 시스템에서 실행되는 경우이 문제가 발생합니다. – Tim

답변

0

u가 자체 서명 인증서를 사용하고 있으므로 Certificate Chain Validation을 해제하거나 신뢰할 수있는 저장소에 추가해야합니다. u가 IdentityServer의 URL을 사용하고있는 것처럼 보입니다. 강력한 끝점 요구 사항을 끌 수 있고 클라이언트에서 메시지 보안만으로 UserNameWSTrustBinding을 사용할 수 있습니다.

+0

나는 그것을 시험해 볼 것이다, 고마워! – William

+0

나는 제안을 시도하지는 않았지만 체인 유효성 검사의 필요성을 이해하고 올바른 방향을 제시했습니다. – William