2012-11-07 2 views
0

자바 웹 서비스에서 사용하기 위해 비누 요청 (X509 인증서 포함)에 서명해야하는 상황이 있습니다. WCF의 마법을 통해 우리는 봉투를 적절하게 형성 할 수 있었고 모든 것이 표준 http보다 훌륭하게 보입니다. 그러나 일단 클라이언트가 요구하는 HTTPS로 이동하면 "SSL/TLS 보안 채널에 대한 신뢰 관계를 설정할 수 없습니다"라는 메시지가 나타납니다. 일부 설정을 조정하고 대상 도메인을 다른 알려진 것으로 변경하려고했습니다. HTTPS 사이트와 동일한 오류가 발생합니다. 아래는 고객 구성입니다. 미리 감사드립니다!HTTPS를 통한 WCF customBinding

<?xml version="1.0"?> 
<configuration> 
    <system.serviceModel> 
    <bindings> 
     <customBinding> 
     <binding 
      name="myCustomBinding" 
      closeTimeout="00:01:00" 
      openTimeout="00:01:00" 
      receiveTimeout="00:10:00" 
      sendTimeout="00:01:00"> 
      <textMessageEncoding 
        messageVersion="Soap11" /> 
      <security 
      allowInsecureTransport="true" 
      authenticationMode="MutualCertificate" 
      requireDerivedKeys="false" 
      keyEntropyMode="ClientEntropy" 
      includeTimestamp="false" 
      securityHeaderLayout="Lax" 
      messageProtectionOrder="SignBeforeEncrypt" 
      messageSecurityVersion="WSSecurity10WSTrust13WSSecureConversation13WSSecurityPolicy12BasicSecurityProfile10"> 
      <secureConversationBootstrap /> 
      </security> 
      <httpsTransport /> 
     </binding> 
     </customBinding> 
    </bindings> 
    <behaviors> 
     <endpointBehaviors> 
     <behavior name="wsHttpCertificateBehavior"> 
      <clientCredentials> 
      <clientCertificate 
       findValue="MyCertName" 
       storeLocation="LocalMachine" 
       x509FindType="FindByIssuerName"/> 
      <serviceCertificate> 
       <authentication 
       revocationMode="NoCheck" 
       trustedStoreLocation="LocalMachine" /> 
      </serviceCertificate> 
      </clientCredentials> 
     </behavior> 
     </endpointBehaviors> 
    </behaviors> 
    <client> 
     <endpoint 
     address="https://www.SomeUrl.com" 
     binding="customBinding" 
     bindingConfiguration="myCustomBinding" 
     behaviorConfiguration="wsHttpCertificateBehavior" 
     contract="ServiceReference1.ServiceTest" 
     name="untk48_dfSoap"> 
     <identity> 
      <certificateReference findValue="MyCertName" storeLocation="LocalMachine" x509FindType="FindByIssuerName"/> 
     </identity> 
     </endpoint> 
    </client> 
    </system.serviceModel> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
    </startup> 
</configuration> 

답변

0

인증서의 친숙한 이름이 https의 도메인 이름과 일치합니까?

필자는 제대로

는 예를 들면 요청에 대한

친절한 이름 box1.mycompany.au.net

도메인 https://box1.mycompany.au.net

-1

설치를 검증하기 위해 HTTPS WCF를 얻기 위해 과거에해야 할 일을했을 인증서를 클라이언트에 보내면이 문제가 발생하지 않을 것입니다. 설치할 때 중간 인증 기관 및 신뢰할 수있는 루트 인증 기관에 설치해야합니다.

나를 위해 일했습니다.

+0

효과가 있을지 모르지만 CA 상점에 이전 인증서를 설치하지 않아도됩니다. – shambulator