我有兩個WCF服務器,都在域mydomain.com上(虛構的例子,下面是IP),分別命名爲server1和server2。如何使用SSL通配符證書通過X509相互驗證多個WCF服務器?
他們都是通過自己的公網IP地址訪問(foo.1和2),而且從專用LAN他們對(即192.168.0.1 192.168.0.2和)
我自己一個通配符SSL證書* .mydomain.com。它正確地安裝在相關的商店(即個人加密和值得信賴的客戶端進行身份驗證)
我希望我的兩臺服務器在本地網絡地址上使用我的通配符證書進行身份驗證。
我已經更新了C:\ WINDOWS \ SYSTEM32 \ DRIVERS \ ETC \ hosts文件,使它看起來像這樣:
192.168.0.1 Server1.mydomain.com
192.186.0.2 Server2.mydomain.com
這些都不是IP地址,如果我解決Server1.mydomain我得到.COM(我寧願讓foo.1 - 2)
我還編輯了連接特定的DNS後綴
我的證書被稱爲我的IPV4本地接口「mydomain.com」喜歡這個在我的Server.config文件(我剝去了所有與認證無關的部分)
<behavior name="ServerToServerBehavior" >
<serviceCredentials>
<clientCertificate>
<authentication certificateValidationMode="PeerOrChainTrust" revocationMode="Online"/>
</clientCertificate>
<serviceCertificate x509FindType="FindByThumbprint" findValue="13a41b3456e431131cd461de"/>
</serviceCredentials>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="myServerAsClientBehaviorConfiguration">
<clientCredentials>
<clientCertificate x509FindType="FindByThumbprint" findValue="13a41b3456e431131cd461de" storeLocation="LocalMachine"/>
<serviceCertificate>
<authentication certificateValidationMode="PeerOrChainTrust" revocationMode="Online" trustedStoreLocation="LocalMachine"/>
</serviceCertificate>
</clientCredentials>
</behavior>
</endpointBehaviors>
這工作完全正常我自己開發的計算機上本地生成X509證書,但在我的生產環境,這裏就是我得到:
Server.Connect:無法連接到服務器 Server2上: System.ServiceModel.Security.MessageSecurityException: 傳出 消息的身份檢查失敗。遠程端點 的預期DNS標識爲 'server2.mydomain.com',但遠程端點 提供了DNS索賠 'mydomain.com'。如果這是一個合法的遠程端點 ,則可以通過 明確指定DNS身份「mydomain.com」 作爲 端點地址創建通道 代理時的身份屬性。
我試圖讓服務器回答Server2.mydomain.com,而不是僅僅mydomain.com,都沒有成功。有關如何做到這一點的任何提示?
我也嘗試了錯誤消息中提出的解決方案,但這似乎沒有任何效果(其他用戶似乎有the same problem,我還沒有找到解決方案)。任何想法如何解決這個問題?
編輯: 我檢查了我的證書提供者,我確實可以將它用於X509身份驗證。
是的,我的證書可以作爲X509證書(只問魔島) – Brann 2009-10-28 10:43:34
我使用的運輸保障。在綁定部分中定義的id如下: –
Brann
2009-10-28 11:02:26