Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Toto téma popisuje, jak nastavit službu WCF hostované službou IIS tak, aby používala zabezpečení přenosu HTTP. Zabezpečení přenosu HTTP vyžaduje registraci certifikátu SSL ve službě IIS. Pokud nemáte certifikát SSL, můžete použít službu IIS k vygenerování testovacího certifikátu. Dále musíte přidat vazbu SSL na web a nakonfigurovat vlastnosti ověřování webu. Nakonec musíte nakonfigurovat službu WCF tak, aby používala protokol HTTPS.
Vytvoření certifikátu podepsaného svým držitelem
Otevřete Internetová informační služba Manager (inetmgr.exe) a v zobrazení stromu vlevo vyberte název počítače. Na pravé straně obrazovky vyberte Certifikáty serveru.

V okně Certifikáty serveru klikněte na odkaz Vytvořit certifikát podepsaný svým držitelem....

Zadejte popisný název certifikátu podepsaného svým držitelem a klikněte na OK.

Nově vytvořené podrobnosti certifikátu podepsaného svým držitelem se teď zobrazují v okně Certifikáty serveru.

Vygenerovaný certifikát je nainstalován v úložišti důvěryhodných kořenových certifikačních autorit.
Přidání vazby SSL
Stále ve správci Internetová informační služba rozbalte složku Weby a potom složku Výchozí web ve stromovém zobrazení na levé straně obrazovky.
Klikněte na Vazby.... Odkaz v části Akce v pravé horní části okna.

V okně Vazby webu klikněte na tlačítko Přidat .

V dialogovém okně Přidat vazbu webu vyberte pro typ https a popisný název certifikátu podepsaného svým držitelem, který jste právě vytvořili.

Konfigurace virtuálního adresáře pro SSL
Stále ve správci Internetová informační služba vyberte virtuální adresář, který obsahuje vaši zabezpečenou službu WCF.
V prostředním podokně okna vyberte v části IIS Nastavení SSL.

V podokně Nastavení SSL zaškrtněte políčko Vyžadovat SSL a klikněte na odkaz Použít v části Akce na pravé straně obrazovky.

Konfigurace služby WCF pro zabezpečení přenosu PROTOKOLU HTTP
V souboru web.config služby WCF nakonfigurujte vazbu HTTP tak, aby používala zabezpečení přenosu, jak je znázorněno v následujícím kódu XML.
<bindings> <basicHttpBinding> <binding name="secureHttpBinding"> <security mode="Transport"> <transport clientCredentialType="None"/> </security> </binding> </basicHttpBinding> </bindings>Zadejte svůj koncový bod služby a služby, jak je znázorněno v následujícím kódu XML.
<services> <service name="MySecureWCFService.Service1"> <endpoint address="" binding="basicHttpBinding" bindingConfiguration="secureHttpBinding" contract="MySecureWCFService.IService1"/> <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" /> </service> </services>
Příklad
Následuje úplný příklad souboru web.config pro službu WCF používající zabezpečení přenosu 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>