gpt4 book ai didi

c# - 公共(public)证书在 WCF 中扮演什么角色?

转载 作者:太空狗 更新时间:2023-10-29 23:36:18 26 4
gpt4 key购买 nike

我们有自己的证书,我们将其用作传输客户端凭据中 ClientCredentials 的一部分,如下所示。

WSHttpBinding wsBinding = new WSHttpBinding();
wsBinding.Security.Mode = System.ServiceModel.SecurityMode.Transport;
wsBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;
wsClient = new WSService.WSClient(wsBinding, new EndpointAddress(serviceURL));
wsClient.ClientCredentials.ClientCertificate.SetCertificate(StoreLocation.LocalMachine, StoreName.My, X509FindType.FindBySubjectName, clientCertificateSubjectName);

我们的合作伙伴还向我们提供了他们在服务器上使用的证书副本,以验证他们的服务器。在我们尚未安装或使用此证书执行任何操作的情况下,当前可以成功调用该服务。

我们使用的是 ColdFusion,通常我们必须将它们安装到 java 证书存储中 - 但令我感到奇怪的是,当我没有对服务证书进行任何操作时,服务通信正在 Visual Studio 下工作

服务证书的作用/用途是什么?客户端是否将其安装在 MMC 证书中受信任的人中或在客户端配置中引用它,例如上面的 WSHttpBinding?

最佳答案

为了通过 SSL 与服务器通信,如果服务器配置为需要客户端证书,则客户端和服务器都需要接受彼此的证书。由于您已经成功与服务器通信,这意味着:

  • 服务器接受了您的客户端证书或未配置为需要客户端证书
  • 您的客户端显式接受或隐式接受服务器证书,因为该证书在您的客户端上具有有效的信任链(颁发 CA 或根 CA 在您受信任的根 CA 列表中,并且该证书不包含在任何吊销列表中)

如果您只想允许与发送合作伙伴提供给您的证书的服务器进行通信。然后您需要编写代码,以便您的客户端明确地将服务器证书与该证书进行比较,然后继续您对服务的调用或让它终止连接。

回答你的问题:我能想到的这个明确提供的证书的唯一目的是在我上面描述的场景中使用它。

关于c# - 公共(public)证书在 WCF 中扮演什么角色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48567138/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com