簡體   English   中英

在 WCF 服務網 tcp 中使用客戶端證書

[英]Use client certificate in WCF service net tcp

我有一個 WCF 應用程序以網絡 tcp 運行,並在服務器中安裝了服務器證書 (xxx.domain.com)。

啟用具有證書安全性的傳輸。 IIS web 站點已配置並且與上述證書一起工作正常,它也沒有安裝在本地機器中,因為它找到了正確的根 ca 和中間證書。

我可以在不安裝證書的情況下調用 wcf 服務嗎?如果是,我應該使用根 CA 或中間證書。 請參閱下面的證書鏈

根 CA
中間的
xxx.domain.com

這是客戶端中使用的代碼

channel.Credentials.ClientCertificate.SetCertificate(
StoreLocation.LocalMachine,
StoreName.CertificateAuthority,
X509FindType.FindByThumbprint,
"tried intermediate and root CA its not working ");

當 Nettcpbinding 創建的Nettcpbinding服務使用證書對客戶端進行身份驗證時,我們需要在服務憑證中指定服務證書。

sh.Credentials.ServiceCertificate.SetCertificate(StoreLocation.LocalMachine, StoreName.My, X509FindType.FindByThumbprint, "5ba5022f527e32ac02548fc5afc558de1d314cb6");

然后該服務將正常工作。 隨后,客戶端在調用服務時應提供客戶端證書,因為Clientcredentialtype屬性是服務器端的Certificate

binding.Security.Transport.ClientCredentialType = TcpClientCredentialType.Certificate;

客戶端。

ServiceReference1.ServiceClient client = new ServiceClient();
client.ClientCredentials.ClientCertificate.SetCertificate(StoreLocation.LocalMachine, StoreName.My, X509FindType.FindByThumbprint, "f0969c5725b2f142b7f150515ec2bd12bc45250b");
            var result = client.Test();
            Console.WriteLine(result);

在此過程中,請注意我們應該在根CA中安裝彼此的證書,這樣才能建立客戶端和服務器端的證書信任關系。
回頭看你的問題,原因可能是客戶端和服務器端之間無法建立證書信任關系。 我們必須確保客戶端已經在根 CA 中安裝了服務證書,並且服務器已經在根 CA 中安裝了客戶端證書。
如果有什么我可以幫忙的,請隨時告訴我。

暫無
暫無

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

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