недействительный сертификат с использованием клиента wcf

Я создал простую службу wcf для развертывания на iis с помощью этого web.config:

<?xml version="1.0"?>
<configuration>

<system.web>
    <compilation debug="true" targetFramework="4.0" />
</system.web>
<system.diagnostics>
    <trace autoflush="true" />
    <sources>
        <source name="System.ServiceModel"
          switchValue="Verbose"
          propagateActivity="true">
            <listeners>
                <add name="sdt"
                       type="System.Diagnostics.XmlWriterTraceListener"
                       initializeData= "log.e2e" />
            </listeners>
        </source>
    </sources>
</system.diagnostics>
<system.serviceModel>
    <services>
         <service behaviorConfiguration="ServiceBehavior" name="WcfService1.Service1">
             <endpoint address="" binding="wsHttpBinding"
                 bindingConfiguration="wsHttpEndpointBinding"
                 name="wsHttpEndpoint" contract="WcfService1.IService1">
             </endpoint>

             <endpoint address="mex" binding="mexHttpsBinding" bindingConfiguration=""
                 name="MexHttpsBindingEndpoint" contract="IMetadataExchange" />
         </service>
    </services>
    <bindings>
        <wsHttpBinding>
            <binding name="wsHttpEndpointBinding">
                <security mode="TransportWithMessageCredential">
                    <transport clientCredentialType="Windows" />
                    <message clientCredentialType="UserName" />
                </security>
            </binding>
        </wsHttpBinding>
    </bindings>
    <behaviors>
        <serviceBehaviors>
            <behavior name="ServiceBehavior">
                <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" />
                <serviceDebug includeExceptionDetailInFaults="false" />
                <serviceCredentials>
                    <userNameAuthentication userNamePasswordValidationMode="Windows" />
                </serviceCredentials>
            </behavior>
        </serviceBehaviors>
    </behaviors>

    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
    </system.serviceModel>
    <system.webServer>
        <modules runAllManagedModulesForAllRequests="true"/>
    </system.webServer>

</configuration>

Я следовал этому примеру:

http://msdn.microsoft.com/en-us/library/aa354508%28v=vs.100%29.aspx

За исключением аутентификации членства. Я установил сертификат на свою клиентскую машину и на серверную машину в соответствии с процедурой. Если я просматриваю службу, отображается проблема с сертификатом, но в любом случае я могу перейти на нерекомендуемый сайт и увидеть файл wsdl. Используя клиент wcf, он выдает ошибку «Не удалось установить доверительные отношения для безопасного канала SSL/TLS». Но с помощью WCFStorm www.wcfstorm.com/ это работает.

Я не знаю, всегда ли необходимо проверять сертификат от клиента или это проблема с сертификатом. Это тестовая среда... Спасибо за любое руководство!


person Ma D    schedule 10.04.2013    source источник
comment
Это может быть полезно: stackoverflow.com/a/479914/1373170 См. раздел Отключение проверки сертификата X.509 в .NET. о том, как добавить поведение   -  person Pablo Romeo    schedule 11.04.2013