Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym temacie opisano sposób konfigurowania usługi WCF hostowanej przez usługi IIS w celu korzystania z zabezpieczeń transportu HTTP. Zabezpieczenia transportu HTTP wymagają zarejestrowania certyfikatu SSL w usługach IIS. Jeśli nie masz certyfikatu SSL, możesz użyć usług IIS do wygenerowania certyfikatu testowego. Następnie należy dodać powiązanie SSL do witryny sieci Web i skonfigurować właściwości uwierzytelniania witryny sieci Web. Na koniec należy skonfigurować usługę WCF do korzystania z protokołu HTTPS.
Tworzenie certyfikatu z podpisem własnym
Otwórz Program Internet Information Services Manager (inetmgr.exe) i wybierz nazwę komputera w widoku drzewa po lewej stronie. Po prawej stronie ekranu wybierz pozycję Certyfikaty serwera
W oknie Certyfikaty serwera kliknij link Utwórz certyfikat z podpisem własnym.... .
Wprowadź przyjazną nazwę certyfikatu z podpisem własnym i kliknij przycisk OK.
Nowo utworzone szczegóły certyfikatu z podpisem własnym są teraz wyświetlane w oknie Certyfikaty serwera.
Wygenerowany certyfikat jest instalowany w magazynie zaufanych głównych urzędów certyfikacji.
Dodawanie powiązania SSL
Nadal w Menedżerze internetowych usług informacyjnych rozwiń folder Witryny , a następnie folder Domyślna witryna sieci Web w widoku drzewa po lewej stronie ekranu.
Kliknij link Powiązania.... w sekcji Akcje w prawej górnej części okna.
W oknie Powiązania witryny kliknij przycisk Dodaj .
W oknie dialogowym Dodawanie powiązania witryny wybierz wartość https dla typu i przyjazną nazwę właśnie utworzonego certyfikatu z podpisem własnym.
Konfigurowanie katalogu wirtualnego dla protokołu SSL
Nadal w Menedżerze usług Internet Information Services wybierz katalog wirtualny zawierający bezpieczną usługę WCF.
W środkowym okienku okna wybierz pozycję SSL Ustawienia w sekcji IIS.
W okienku Ustawienia SSL zaznacz pole wyboru Wymagaj protokołu SSL i kliknij link Zastosuj w sekcji Akcje po prawej stronie ekranu.
Konfigurowanie usługi WCF na potrzeby zabezpieczeń transportu HTTP
W pliku web.config usługi WCF skonfiguruj powiązanie HTTP w celu korzystania z zabezpieczeń transportu, jak pokazano w poniższym kodzie XML.
<bindings> <basicHttpBinding> <binding name="secureHttpBinding"> <security mode="Transport"> <transport clientCredentialType="None"/> </security> </binding> </basicHttpBinding> </bindings>
Określ usługę i punkt końcowy usługi, jak pokazano w poniższym pliku XML.
<services> <service name="MySecureWCFService.Service1"> <endpoint address="" binding="basicHttpBinding" bindingConfiguration="secureHttpBinding" contract="MySecureWCFService.IService1"/> <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" /> </service> </services>
Przykład
Poniżej przedstawiono kompletny przykład pliku web.config dla usługi WCF przy użyciu zabezpieczeń transportu HTTP
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<services>
<service name="MySecureWCFService.Service1">
<endpoint address=""
binding="basicHttpBinding"
bindingConfiguration="secureHttpBinding"
contract="MySecureWCFService.IService1"/>
<endpoint address="mex"
binding="mexHttpsBinding"
contract="IMetadataExchange" />
</service>
</services>
<bindings>
<basicHttpBinding>
<binding name="secureHttpBinding">
<security mode="Transport">
<transport clientCredentialType="None"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpsGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>