none
Server certificate is not configured properly with HTTP.SYS RRS feed

  • Question

  • Windows 8.1 + all updates

    I have created a WCF service and hosted on IIS running on W8.1. I can connect to the WCF service and created a test application which connects and retrieves data.

    So i want to go one step further and add a certificate. In IIS i create a self signed certificate and create a new binding (443) and attach the cert to this binding. I can view the WCF service using https.

    When i try to connect with my working app i get

    Additional information: An error occurred while making the HTTP request to https://MACHINENAME:8080/MyService.svc. 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 a mismatch of the security binding between the client and the server.

    My config file under the WCF service is

    <configuration>
        <system.web>
          <compilation debug="true" strict="false" explicit="true" targetFramework="4.5" />
          <httpRuntime targetFramework="4.5" />
        </system.web>
     
        <system.serviceModel>
            <behaviors>
                <serviceBehaviors>
                    <behavior name="">
                        <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
                        <serviceDebug includeExceptionDetailInFaults="false" />
                    </behavior>
                </serviceBehaviors>
            </behaviors>
            <serviceHostingEnvironment aspNetCompatibilityEnabled="true"
                multipleSiteBindingsEnabled="true" />
        </system.serviceModel>
    </configuration>

    and in the application that makes the call to the WCF service i have

    <configuration>
        <system.web>
          <compilation debug="true" strict="false" explicit="true" targetFramework="4.5" />
          <httpRuntime targetFramework="4.5"  />
        </system.web>
     
        <system.serviceModel>
            <bindings>
                <basicHttpBinding>
                  <binding name="BasicHttpBinding_ICustomer">
                    <security mode="Transport">
                      <transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
                      <message clientCredentialType="Certificate" algorithmSuite="Default" />
                    </security>
                  </binding>
                </basicHttpBinding>
            </bindings>
            <client>
                <endpoint address="https://machinename:8080/MyService.svc"
                    binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ICustomer"
                    contract="MyService.ICustomer" name="BasicHttpBinding_ICustomer" />
            </client>
        </system.serviceModel>
    </configuration>
    

    Have i missed something or not have something configured correctly? I have researched around but it seems there too many variables for me to consider which im getting confused with so i have been saving my config file everytime i make a change to see if it worked or not.

    If i understood this correctly if i create a self signed cert via IIS then this automatically installs the cert into the appropriate root. If using MakeCert only then i need to install the cert manually.

    Appreciate any help


    • Edited by Pure Deal Friday, September 12, 2014 6:30 PM
    Friday, September 12, 2014 6:27 PM

Answers