我正在測試本地工作站上的WCF服務,並且遇到了X509證書的問題。客戶端找不到X.509證書
我創建了一個證書併成功註冊了它。證書顯示在證書管理器的可信人員/證書下。服務行爲的配置如下(姓名評論道*):
<serviceCertificate findValue="*****" storeLocation="LocalMachine"
storeName="TrustedPeople" x509FindType="FindBySubjectName" />
<userNameAuthentication userNamePasswordValidationMode="Custom"
customUserNamePasswordValidatorType="*****.DistributorValidator, *****" />
<issuedTokenAuthentication certificateValidationMode="None" />
但是,當服務在瀏覽器中打開,我得到的錯誤「System.InvalidOperationException:採用找不到X.509證書以下搜索條件:STORENAME 'TrustedPeople',StoreLocation 'LOCALMACHINE',FindType 'FindBySubjectName',FindValue 「* ***」
當我嘗試以編程方式設置證書同樣的錯誤發生。測試客戶端:
serviceclient.ClientCredentials.ClientCertificate.SetCertificate(
StoreLocation.LocalMachine,
StoreName.TrustedPeople,
X509FindType.FindBySubjectName,
"CN=TravelBrokerKey");
看來,按主題名稱,指紋或序列號找到沒有區別。我也試圖捕獲異常和調試,但不能將調試器附加到它(所以看起來異常發生在客戶端)。還嘗試通過瀏覽器設置直接註冊證書,但這也沒有幫助。
測試環境操作系統是Windows 7,並通過瀏覽器IE8和Firefox 4.0進行測試。
好吧,這使事情更清楚一點......但是從服務的配置,如果userNameAuthentication標籤(臨時)註釋掉,不該是否有可能至少在瀏覽器中查看服務或將其作爲服務引用添加到測試客戶端?仍然每次都會收到「找不到x.509 ..」異常。 –
看來您的服務可以正確啓動,如果是的話,我認爲服務可以找到證書。你能否檢查你是否可以手動找到客戶的證書? – Jack
現在就工作。我爲服務使用證書,但不是爲客戶端(需要證書,因爲我有自定義用戶名/密碼檢查,並且不使用https)。感謝您的小費。 –