2011-06-28 124 views
4

我有一個使用SSL的服務。當我嘗試瀏覽到服務,我得到以下錯誤:WCF - SSL服務

The SSL settings for the service 'SslRequireCert' does not match those of the IIS 'None'. 

我的配置如下:

<security mode="Transport"> 
     <transport clientCredentialType="Certificate" /> 
     </security> 

我使用IIS Express和我有「啓用SSL」檢查(以驗證WebMatrix中)。

任何想法我還需要做什麼?

回答

4

確定。它看起來像我需要更新applicationhost.config文件(在IIS Express中)。我爲我的網站添加了一個位置,並設置了sslFlags =「Ssl,SslAcceptCert,SslRequireCert」。這使我可以啓用SSL身份驗證。然後,當我嘗試使用客戶端訪問服務時,我收到一條消息,指出建立信任關係時出錯。這是因爲我的可信任人員文件夾中沒有服務器證書(或者它可能是客戶端,我不確定服務和客戶端是否位於本地PC上)。這樣做之後,服務就可以工作了,但我們不想將證書交給客戶端,所以我最終使用了TransportWithMessageCredential安全模式。

1

修改您的行爲以包含SSL,如下所示;

<behaviors> 
    <serviceBehaviors> 
    <behavior name="MyService"> 
     <serviceMetadata httpGetEnabled="True" httpsGetEnabled="True" /> 
     <serviceDebug includeExceptionDetailInFaults="False" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 

,並刪除

<security mode="Transport"> 
     <transport clientCredentialType="Certificate" /> 
     </security> 

這意味着您將使用證書認證

+0

當我這樣做時,我收到消息:沒有端點收聽。如果我使用我的原始配置,但是使用TransportWithMessageSecurity它可以工作。 – user472292

+0

你可以瀏覽網址上的https嗎? – ChrisBint

+0

是的。瀏覽到服務工作正常。 – user472292

1

這與mex行的缺失完全沒有關係,除非它的配置不正確,在這種情況下刪除它將會產生影響,但IIS仍可能會給出相同的錯誤。

確保IIS具有'需要SSL'和'接受'(更簡單)或'要求'用戶證書的SSL設置 - 然後是RESTART IIS。雖然IIS說修改是應用的 - 即使我的經驗,他們並不總是 - 或者至少沒有立即完成。