簡體   English   中英

自托管WCF服務+客戶端證書身份驗證

[英]selfhosted WCF-Service + client certificate authentication

我正在嘗試實現自托管的WCF服務,該服務應通過證書使用客戶端身份驗證。 不幸的是,身份驗證失敗。 日志文件說,客戶端不提供證書。 如果嘗試通過firefox訪問該服務,則會顯示:“錯誤403-禁止訪問”。

以下代碼顯示了通過app-config文件進行的配置。

  <serviceBehaviors>
    <behavior name="sslbehaviour">
      <serviceMetadata httpsGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="true"/>
      <serviceCredentials>
        <clientCertificate>
          <authentication certificateValidationMode="ChainTrust" trustedStoreLocation="CurrentUser"/>
        </clientCertificate>
        <serviceCertificate findValue="cert-thumb-print" x509FindType="FindByThumbprint" storeLocation="CurrentUser" storeName="My"/>
      </serviceCredentials>            
    </behavior>
  </serviceBehaviors>

endpoint address="https://localhost:443/service" binding="wsHttpBinding"
      bindingConfiguration="BindingForResultPost" contract="MobD.IEndpointService" />

錯誤消息:System.ServiceModel.Channels.HttpsClientCertificateNotPresent.aspx

我想我已經正確創建並安裝了我的證書。

我將非常感謝每一個提示...

親切的問候,邁克爾

您說當您嘗試通過Firefox訪問它時,您會得到403。Firefox是否已安裝了客戶端證書?

什么是Http子代碼? 我的猜測是您得到403.7(這意味着未安裝客戶端證書或瀏覽器未提供客戶端證書),403.16(客戶端證書不受信任),403.17(客戶端證書已過期)或可能是403.13(客戶端證書已撤銷) 。

我看到的一個問題-在沒有傳出網絡訪問權限的服務器上-是您獲得上述403代碼之一(不記得是哪一個),因為服務器無法獲取證書吊銷列表-因此它拒絕了所有證書。 可以禁用此檢查,但是顯然有一些安全注意事項。

請參考以下步驟在何處安裝客戶端證書:

您需要具有以下客戶端證書:

在客戶端計算機上:

當前用戶->個人文件夾應安裝客戶端證書MyClientCert.pfx

在服務器計算機上:

本地計算機-> TrusterPeople應該安裝了MyClientCert.cer

確保設置正確。 我看到您在當前用戶的TrustedPeople中擁有客戶端證書。 希望現在清除證書安裝

請參考此LINK ,該鏈接對正在安裝的客戶端證書以及如何告訴瀏覽器從商店中選擇一個進行了一些解釋:

注意:何時使用.pfx和.cer文件

自托管WCF服務時,必須在Windows中分配端口權限。

請參閱MSDN上的本文: 如何:使用SSL證書配置端口

您還可以使用OpenSSL檢查端口狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM