Попытка заставить HelloWorld работать через SSL. Прочитайте все эти документы:
Все, что я знаю, это то, что сертификат создается и развертывается правильно (оба сертификата фактически). Тем не менее, я думаю, что что-то не так с моим web.config(извините, не может быть более конкретным на данный момент). Это похоже на отсутствие прослушивания сервера на 443, или клиент ожидает http вместо https. Может ли кто-нибудь указать мне на соответствующий ресурс и/или сообщить, что я делаю неправильно?
Web.config находится здесь:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="HTTPBaseAddress" value=""/>
</appSettings>
<system.serviceModel>
<services>
<service behaviorConfiguration="MyServiceTypeBehaviors" name="MyWCFServices.HelloWorldService">
<clear />
<endpoint address="mex" binding="mexHttpBinding" name="mexEndpoint" contract="IMetadataExchange" listenUriMode="Explicit">
<identity>
<dns value="localhost" />
<certificateReference storeName="My" storeLocation="LocalMachine" x509FindType="FindBySubjectDistinguishedName" />
</identity>
</endpoint>
<endpoint address="" binding="wsHttpBinding" bindingConfiguration="" name="SSLendpoint" contract="MyWCFServices.IHelloWorldService">
<identity>
<dns value="localhost" />
<certificateReference x509FindType="FindByThumbprint" findValue="82a39faaeb18bf9585b334ca83264add3d5b26ee" />
</identity>
</endpoint>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MyServiceTypeBehaviors" >
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Клиентский app.config находится здесь:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="NoSecurity">
<security mode="None" />
</binding>
<binding name="SSLsecurity">
<security mode="Transport">
<transport clientCredentialType="None" />
<message clientCredentialType="Certificate" /
</security>
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint address="https://localhost:443/HelloWorldSSL/HelloWorldService.svc"
binding="wsHttpBinding" bindingConfiguration="" contract="IHelloWorldService"
name="wsHttpBinding_IHelloWorldService" />
</client>
</system.serviceModel>
</configuration>
Если какая-либо дополнительная информация/снимок экрана требуется - я с радостью предоставит ее (как обычно). Надеюсь, что это ответный вопрос:)
Ваша конфигурация неверна. Вы не определяете настраиваемую конфигурацию привязки в своей конечной точке, поэтому HTTPS не используется. Используйте это для сервера:
<bindings>
<wsHttpBinding>
<binding name="SSLSecurity">
<security mode="Transport">
<transport clientCredentialType="None" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="MyServiceTypeBehaviors" >
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="MyServiceTypeBehaviors"
name="MyWCFServices.HelloWorldService">
<endpoint address="mex" binding="mexHttpBinding" name="mexEndpoint"
contract="IMetadataExchange" listenUriMode="Explicit" />
<endpoint address="" binding="wsHttpBinding" bindingConfiguration="SSLSecurity"
name="SSLendpoint" contract="MyWCFServices.IHelloWorldService" />
</service>
</services>
Для использования клиентом:
<bindings>
<wsHttpBinding>
<binding name="SSLSecurity">
<security mode="Transport">
<transport clientCredentialType="None" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint address="https://localhost:443/HelloWorldSSL/HelloWorldService.svc"
binding="wsHttpBinding" bindingConfiguration="SSLSecurity"
contract="IHelloWorldService" name="wsHttpBinding_IHelloWorldService" />
</client>